[INFO] cloning repository https://github.com/zanderlewis/lectern
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zanderlewis/lectern" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzanderlewis%2Flectern", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzanderlewis%2Flectern'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 85df670377ba2e387f4e3dd2e680b16984f99af3
[INFO] fixing zanderlewis/lectern against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzanderlewis%2Flectern" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/zanderlewis/lectern
[INFO] finished tweaking git repo https://github.com/zanderlewis/lectern
[INFO] tweaked toml for git repo https://github.com/zanderlewis/lectern written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/zanderlewis/lectern on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/zanderlewis/lectern already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded zopfli v0.8.3
[INFO] [stderr]   Downloaded env_home v0.1.0
[INFO] [stderr]   Downloaded cc v1.2.55
[INFO] [stderr]   Downloaded xz2 v0.1.7
[INFO] [stderr]   Downloaded deadpool-runtime v0.1.4
[INFO] [stderr]   Downloaded tokio-test v0.4.5
[INFO] [stderr]   Downloaded derive_arbitrary v1.4.2
[INFO] [stderr]   Downloaded deflate64 v0.1.10
[INFO] [stderr]   Downloaded zmij v1.0.19
[INFO] [stderr]   Downloaded assert-json-diff v2.0.2
[INFO] [stderr]   Downloaded which v8.0.0
[INFO] [stderr]   Downloaded time-macros v0.2.26
[INFO] [stderr]   Downloaded lzma-rs v0.3.0
[INFO] [stderr]   Downloaded bzip2 v0.5.2
[INFO] [stderr]   Downloaded deadpool v0.12.3
[INFO] [stderr]   Downloaded tar v0.4.44
[INFO] [stderr]   Downloaded compression-core v0.4.31
[INFO] [stderr]   Downloaded wiremock v0.6.5
[INFO] [stderr]   Downloaded compression-codecs v0.4.36
[INFO] [stderr]   Downloaded zip v2.4.2
[INFO] [stderr]   Downloaded async-compression v0.4.37
[INFO] [stderr]   Downloaded time v0.3.46
[INFO] [stderr]   Downloaded predicates-tree v1.0.12
[INFO] [stderr]   Downloaded predicates-core v1.0.9
[INFO] [stderr]   Downloaded predicates v3.1.3
[INFO] [stderr]   Downloaded http-serde v2.1.1
[INFO] [stderr]   Downloaded regex-syntax v0.8.9
[INFO] [stderr]   Downloaded http-cache-semantics v2.1.0
[INFO] [stderr]   Downloaded colored v3.1.1
[INFO] [stderr]   Downloaded git2 v0.20.4
[INFO] [stderr]   Downloaded libgit2-sys v0.18.3+1.9.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] aaa92b7006eae457cf561408c37557e848c0728e06157dd1b019fa186e07509a
[INFO] running `Command { std: "docker" "start" "aaa92b7006eae457cf561408c37557e848c0728e06157dd1b019fa186e07509a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "aaa92b7006eae457cf561408c37557e848c0728e06157dd1b019fa186e07509a" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "aaa92b7006eae457cf561408c37557e848c0728e06157dd1b019fa186e07509a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "aaa92b7006eae457cf561408c37557e848c0728e06157dd1b019fa186e07509a" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking indexmap v2.13.0
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]     Checking simd-adler32 v0.3.8
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling zmij v1.0.19
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking regex-syntax v0.8.9
[INFO] [stderr]     Checking openssl-probe v0.1.6
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking socket2 v0.6.2
[INFO] [stderr]     Checking brotli v8.0.2
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking compression-core v0.4.31
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]     Checking deranged v0.5.5
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]     Checking crc-catalog v2.4.0
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking crc v3.4.0
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]    Compiling zip v2.4.2
[INFO] [stderr]     Checking bumpalo v3.19.1
[INFO] [stderr]     Checking clap_lex v0.7.7
[INFO] [stderr]     Checking winnow v0.7.14
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking terminal_size v0.4.3
[INFO] [stderr]     Checking time v0.3.46
[INFO] [stderr]     Checking clap_builder v4.5.57
[INFO] [stderr]     Checking xattr v1.6.1
[INFO] [stderr]     Checking zopfli v0.8.3
[INFO] [stderr]     Checking lzma-rs v0.3.0
[INFO] [stderr]     Checking pbkdf2 v0.12.2
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling libz-sys v1.1.23
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling libssh2-sys v0.3.1
[INFO] [stderr]    Compiling bzip2-sys v0.1.13+1.0.8
[INFO] [stderr]    Compiling lzma-sys v0.1.20
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking compression-codecs v0.4.36
[INFO] [stderr]    Compiling libgit2-sys v0.18.3+1.9.2
[INFO] [stderr]     Checking xz2 v0.1.7
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking rtoolbox v0.0.3
[INFO] [stderr]     Checking filetime v0.2.27
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]     Checking predicates-core v1.0.9
[INFO] [stderr]     Checking bzip2 v0.5.2
[INFO] [stderr]     Checking deflate64 v0.1.10
[INFO] [stderr]     Checking constant_time_eq v0.3.1
[INFO] [stderr]     Checking env_home v0.1.0
[INFO] [stderr]    Compiling mockall_derive v0.13.1
[INFO] [stderr]     Checking which v8.0.0
[INFO] [stderr]     Checking tempfile v3.24.0
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking tar v0.4.44
[INFO] [stderr]     Checking rpassword v7.4.0
[INFO] [stderr]     Checking directories v6.0.0
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]     Checking fs_extra v1.3.0
[INFO] [stderr]     Checking colored v3.1.1
[INFO] [stderr]     Checking termtree v0.5.1
[INFO] [stderr]     Checking deadpool-runtime v0.1.4
[INFO] [stderr]     Checking predicates-tree v1.0.12
[INFO] [stderr]     Checking predicates v3.1.3
[INFO] [stderr]     Checking fragile v2.0.1
[INFO] [stderr]     Checking yansi v1.0.1
[INFO] [stderr]     Checking diff v0.1.13
[INFO] [stderr]     Checking downcast v0.11.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking rustls-pki-types v1.14.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking async-compression v0.4.37
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking http-serde v2.1.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking http-cache-semantics v2.1.0
[INFO] [stderr]     Checking h2 v0.4.13
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking chrono v0.4.43
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking deadpool v0.12.3
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking clap v4.5.57
[INFO] [stderr]     Checking assert-json-diff v2.0.2
[INFO] [stderr]     Checking tokio-test v0.4.5
[INFO] [stderr]     Checking pretty_assertions v1.4.1
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking mockall v0.13.1
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking wiremock v0.6.5
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking git2 v0.20.4
[INFO] [stderr]     Checking composer-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0433]: cannot find `tests` in `crate`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:64:101
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub(crate) fn getIncludePathsFile(&self, packageMap: Vec<serde_json::Value>, filesystem: crate::tests::composer::test::fixtures:...
[INFO] [stdout]    |                                                                                                     ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub(crate) fn getIncludePathsFile(&self, packageMap: Vec<serde_json::Value>, filesystem: crate::core::num::imp::bignum::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem, basePath: String, vendorPath: String, vendorPathCode: String, appBaseDirCode: String) {
[INFO] [stdout]    |                                                                                                     ++++++++++++++++++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  3 + use crate::composer::util::filesystem;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `filesystem`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 64 -     pub(crate) fn getIncludePathsFile(&self, packageMap: Vec<serde_json::Value>, filesystem: crate::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem, basePath: String, vendorPath: String, vendorPathCode: String, appBaseDirCode: String) {
[INFO] [stdout] 64 +     pub(crate) fn getIncludePathsFile(&self, packageMap: Vec<serde_json::Value>, filesystem: filesystem::Filesystem, basePath: String, vendorPath: String, vendorPathCode: String, appBaseDirCode: String) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `tests` in `crate`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:68:96
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub(crate) fn getIncludeFilesFile(&self, files: Vec<serde_json::Value>, filesystem: crate::tests::composer::test::fixtures::func...
[INFO] [stdout]    |                                                                                                ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub(crate) fn getIncludeFilesFile(&self, files: Vec<serde_json::Value>, filesystem: crate::core::num::imp::bignum::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem, basePath: String, vendorPath: String, vendorPathCode: String, appBaseDirCode: String) {
[INFO] [stdout]    |                                                                                                ++++++++++++++++++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  3 + use crate::composer::util::filesystem;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `filesystem`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 68 -     pub(crate) fn getIncludeFilesFile(&self, files: Vec<serde_json::Value>, filesystem: crate::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem, basePath: String, vendorPath: String, vendorPathCode: String, appBaseDirCode: String) {
[INFO] [stdout] 68 +     pub(crate) fn getIncludeFilesFile(&self, files: Vec<serde_json::Value>, filesystem: filesystem::Filesystem, basePath: String, vendorPath: String, vendorPathCode: String, appBaseDirCode: String) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `tests` in `crate`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:72:57
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub(crate) fn getPathCode(&self, filesystem: crate::tests::composer::test::fixtures::functional::installed_versions2::vendor::sy...
[INFO] [stdout]    |                                                         ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub(crate) fn getPathCode(&self, filesystem: crate::core::num::imp::bignum::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem, basePath: String, vendorPath: String, path: String) {
[INFO] [stdout]    |                                                         ++++++++++++++++++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  3 + use crate::composer::util::filesystem;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `filesystem`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 72 -     pub(crate) fn getPathCode(&self, filesystem: crate::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem, basePath: String, vendorPath: String, path: String) {
[INFO] [stdout] 72 +     pub(crate) fn getPathCode(&self, filesystem: filesystem::Filesystem, basePath: String, vendorPath: String, path: String) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `tests` in `crate`
[INFO] [stdout]   --> src/composer/plugin/plugin_manager.rs:84:207
[INFO] [stdout]    |
[INFO] [stdout] 84 | ..., ctorArgs: Vec<serde_json::Value>) -> Option<crate::tests::composer::test::plugin::mock::capability::Capability> {
[INFO] [stdout]    |                                                         ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn getPluginCapability(&self, plugin: Box<dyn crate::composer::plugin::plugin_interface::PluginInterface>, capabilityClassName: serde_json::Value, ctorArgs: Vec<serde_json::Value>) -> Option<crate::core::num::imp::bignum::tests::composer::test::plugin::mock::capability::Capability> {
[INFO] [stdout]    |                                                                                                                                                                                                               ++++++++++++++++++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  3 + use crate::composer::plugin::capability::capability;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `capability`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 84 -     pub fn getPluginCapability(&self, plugin: Box<dyn crate::composer::plugin::plugin_interface::PluginInterface>, capabilityClassName: serde_json::Value, ctorArgs: Vec<serde_json::Value>) -> Option<crate::tests::composer::test::plugin::mock::capability::Capability> {
[INFO] [stdout] 84 +     pub fn getPluginCapability(&self, plugin: Box<dyn crate::composer::plugin::plugin_interface::PluginInterface>, capabilityClassName: serde_json::Value, ctorArgs: Vec<serde_json::Value>) -> Option<capability::Capability> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `tests` in `crate`
[INFO] [stdout]    --> src/composer/util/perforce.rs:164:43
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn getFilesystem(&self) -> crate::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesy...
[INFO] [stdout]     |                                           ^^^^^ unresolved import
[INFO] [stdout]     |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn getFilesystem(&self) -> crate::core::num::imp::bignum::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem {
[INFO] [stdout]     |                                           ++++++++++++++++++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]     |
[INFO] [stdout]   3 + use crate::composer::util::filesystem;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `filesystem`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 164 -     pub fn getFilesystem(&self) -> crate::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem {
[INFO] [stdout] 164 +     pub fn getFilesystem(&self) -> filesystem::Filesystem {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `tests` in `crate`
[INFO] [stdout]    --> src/composer/util/perforce.rs:168:44
[INFO] [stdout]     |
[INFO] [stdout] 168 |     pub fn setFilesystem(&self, fs: crate::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::files...
[INFO] [stdout]     |                                            ^^^^^ unresolved import
[INFO] [stdout]     |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]     |
[INFO] [stdout] 168 |     pub fn setFilesystem(&self, fs: crate::core::num::imp::bignum::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem) {
[INFO] [stdout]     |                                            ++++++++++++++++++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]     |
[INFO] [stdout]   3 + use crate::composer::util::filesystem;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `filesystem`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 168 -     pub fn setFilesystem(&self, fs: crate::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem) {
[INFO] [stdout] 168 +     pub fn setFilesystem(&self, fs: filesystem::Filesystem) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::composer::config::Config`
[INFO] [stdout]  --> src/composer/i_o/base_i_o.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::composer::config::Config;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `tests` in `crate`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:64:101
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub(crate) fn getIncludePathsFile(&self, packageMap: Vec<serde_json::Value>, filesystem: crate::tests::composer::test::fixtures:...
[INFO] [stdout]    |                                                                                                     ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub(crate) fn getIncludePathsFile(&self, packageMap: Vec<serde_json::Value>, filesystem: crate::core::num::imp::bignum::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem, basePath: String, vendorPath: String, vendorPathCode: String, appBaseDirCode: String) {
[INFO] [stdout]    |                                                                                                     ++++++++++++++++++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  3 + use crate::composer::util::filesystem;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `filesystem`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 64 -     pub(crate) fn getIncludePathsFile(&self, packageMap: Vec<serde_json::Value>, filesystem: crate::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem, basePath: String, vendorPath: String, vendorPathCode: String, appBaseDirCode: String) {
[INFO] [stdout] 64 +     pub(crate) fn getIncludePathsFile(&self, packageMap: Vec<serde_json::Value>, filesystem: filesystem::Filesystem, basePath: String, vendorPath: String, vendorPathCode: String, appBaseDirCode: String) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `tests` in `crate`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:68:96
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub(crate) fn getIncludeFilesFile(&self, files: Vec<serde_json::Value>, filesystem: crate::tests::composer::test::fixtures::func...
[INFO] [stdout]    |                                                                                                ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub(crate) fn getIncludeFilesFile(&self, files: Vec<serde_json::Value>, filesystem: crate::core::num::imp::bignum::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem, basePath: String, vendorPath: String, vendorPathCode: String, appBaseDirCode: String) {
[INFO] [stdout]    |                                                                                                ++++++++++++++++++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  3 + use crate::composer::util::filesystem;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `filesystem`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 68 -     pub(crate) fn getIncludeFilesFile(&self, files: Vec<serde_json::Value>, filesystem: crate::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem, basePath: String, vendorPath: String, vendorPathCode: String, appBaseDirCode: String) {
[INFO] [stdout] 68 +     pub(crate) fn getIncludeFilesFile(&self, files: Vec<serde_json::Value>, filesystem: filesystem::Filesystem, basePath: String, vendorPath: String, vendorPathCode: String, appBaseDirCode: String) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `tests` in `crate`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:72:57
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub(crate) fn getPathCode(&self, filesystem: crate::tests::composer::test::fixtures::functional::installed_versions2::vendor::sy...
[INFO] [stdout]    |                                                         ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub(crate) fn getPathCode(&self, filesystem: crate::core::num::imp::bignum::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem, basePath: String, vendorPath: String, path: String) {
[INFO] [stdout]    |                                                         ++++++++++++++++++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  3 + use crate::composer::util::filesystem;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `filesystem`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 72 -     pub(crate) fn getPathCode(&self, filesystem: crate::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem, basePath: String, vendorPath: String, path: String) {
[INFO] [stdout] 72 +     pub(crate) fn getPathCode(&self, filesystem: filesystem::Filesystem, basePath: String, vendorPath: String, path: String) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `tests` in `crate`
[INFO] [stdout]   --> src/composer/plugin/plugin_manager.rs:84:207
[INFO] [stdout]    |
[INFO] [stdout] 84 | ..., ctorArgs: Vec<serde_json::Value>) -> Option<crate::tests::composer::test::plugin::mock::capability::Capability> {
[INFO] [stdout]    |                                                         ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn getPluginCapability(&self, plugin: Box<dyn crate::composer::plugin::plugin_interface::PluginInterface>, capabilityClassName: serde_json::Value, ctorArgs: Vec<serde_json::Value>) -> Option<crate::core::num::imp::bignum::tests::composer::test::plugin::mock::capability::Capability> {
[INFO] [stdout]    |                                                                                                                                                                                                               ++++++++++++++++++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  3 + use crate::composer::plugin::capability::capability;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `capability`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 84 -     pub fn getPluginCapability(&self, plugin: Box<dyn crate::composer::plugin::plugin_interface::PluginInterface>, capabilityClassName: serde_json::Value, ctorArgs: Vec<serde_json::Value>) -> Option<crate::tests::composer::test::plugin::mock::capability::Capability> {
[INFO] [stdout] 84 +     pub fn getPluginCapability(&self, plugin: Box<dyn crate::composer::plugin::plugin_interface::PluginInterface>, capabilityClassName: serde_json::Value, ctorArgs: Vec<serde_json::Value>) -> Option<capability::Capability> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `tests` in `crate`
[INFO] [stdout]    --> src/composer/util/perforce.rs:164:43
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn getFilesystem(&self) -> crate::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesy...
[INFO] [stdout]     |                                           ^^^^^ unresolved import
[INFO] [stdout]     |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn getFilesystem(&self) -> crate::core::num::imp::bignum::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem {
[INFO] [stdout]     |                                           ++++++++++++++++++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]     |
[INFO] [stdout]   3 + use crate::composer::util::filesystem;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `filesystem`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 164 -     pub fn getFilesystem(&self) -> crate::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem {
[INFO] [stdout] 164 +     pub fn getFilesystem(&self) -> filesystem::Filesystem {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `tests` in `crate`
[INFO] [stdout]    --> src/composer/util/perforce.rs:168:44
[INFO] [stdout]     |
[INFO] [stdout] 168 |     pub fn setFilesystem(&self, fs: crate::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::files...
[INFO] [stdout]     |                                            ^^^^^ unresolved import
[INFO] [stdout]     |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]     |
[INFO] [stdout] 168 |     pub fn setFilesystem(&self, fs: crate::core::num::imp::bignum::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem) {
[INFO] [stdout]     |                                            ++++++++++++++++++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]     |
[INFO] [stdout]   3 + use crate::composer::util::filesystem;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `filesystem`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 168 -     pub fn setFilesystem(&self, fs: crate::tests::composer::test::fixtures::functional::installed_versions2::vendor::symfony::filesystem::filesystem::Filesystem) {
[INFO] [stdout] 168 +     pub fn setFilesystem(&self, fs: filesystem::Filesystem) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::composer::config::Config`
[INFO] [stdout]  --> src/composer/i_o/base_i_o.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::composer::config::Config;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/advisory/auditor.rs:25:33
[INFO] [stdout]     |
[INFO] [stdout]  25 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, repoSet: crate::composer::repository::repository_set::Reposit...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  25 -     pub fn audit(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, repoSet: crate::composer::repository::repository_set::RepositorySet, packages: Vec<serde_json::Value>, format: String, warningOnly: bool, ignoreList: Vec<serde_json::Value>, abandoned: String, ignoredSeverities: Vec<serde_json::Value>, ignoreUnreachable: bool, ignoreAbandoned: Vec<serde_json::Value>) -> i64 {
[INFO] [stdout]  25 +     pub fn audit(&self, io: Box<Self>, repoSet: crate::composer::repository::repository_set::RepositorySet, packages: Vec<serde_json::Value>, format: String, warningOnly: bool, ignoreList: Vec<serde_json::Value>, abandoned: String, ignoredSeverities: Vec<serde_json::Value>, ignoreUnreachable: bool, ignoreAbandoned: Vec<serde_json::Value>) -> i64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/advisory/auditor.rs:45:40
[INFO] [stdout]     |
[INFO] [stdout]  45 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, advisories: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  45 -     fn outputAdvisories(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, advisories: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]  45 +     fn outputAdvisories(&self, io: Box<Self>, advisories: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/advisory/auditor.rs:53:45
[INFO] [stdout]     |
[INFO] [stdout]  53 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, advisories: Vec<serde_json::Value>) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  53 -     fn outputAdvisoriesPlain(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, advisories: Vec<serde_json::Value>) {
[INFO] [stdout]  53 +     fn outputAdvisoriesPlain(&self, io: Box<Self>, advisories: Vec<serde_json::Value>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/advisory/auditor.rs:57:47
[INFO] [stdout]     |
[INFO] [stdout]  57 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, packages: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  57 -     fn outputAbandonedPackages(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, packages: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]  57 +     fn outputAbandonedPackages(&self, io: Box<Self>, packages: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/autoload/class_map_generator.rs:16:88
[INFO] [stdout]     |
[INFO] [stdout]  16 | ... Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, namespace: Option<String>, autoloadType: Option<String>, sca...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  16 -     pub fn createMap(path: serde_json::Value, excluded: Option<String>, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, namespace: Option<String>, autoloadType: Option<String>, scannedFiles: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]  16 +     pub fn createMap(path: serde_json::Value, excluded: Option<String>, io: Option<Box<Self>>, namespace: Option<String>, autoloadType: Option<String>, scannedFiles: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/archive_command.rs:22:42
[INFO] [stdout]     |
[INFO] [stdout]  22 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, packageName: Option<...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  22 -     pub(crate) fn archive(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, packageName: Option<String>, version: Option<String>, format: String, dest: String, fileName: Option<String>, ignoreFilters: bool, composer: Option<crate::composer::composer::Composer>) -> i64 {
[INFO] [stdout]  22 +     pub(crate) fn archive(&self, io: Box<Self>, config: crate::composer::config::Config, packageName: Option<String>, version: Option<String>, format: String, dest: String, fileName: Option<String>, ignoreFilters: bool, composer: Option<crate::composer::composer::Composer>) -> i64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/archive_command.rs:26:48
[INFO] [stdout]     |
[INFO] [stdout]  26 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, packageName: String, version: Option<String>) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  26 -     pub(crate) fn selectPackage(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, packageName: String, version: Option<String>) {
[INFO] [stdout]  26 +     pub(crate) fn selectPackage(&self, io: Box<Self>, packageName: String, version: Option<String>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/base_command.rs:44:33
[INFO] [stdout]     |
[INFO] [stdout]  44 |     pub fn setIO(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  44 -     pub fn setIO(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) {
[INFO] [stdout]  44 +     pub fn setIO(&self, io: Box<Self>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/base_command.rs:56:83
[INFO] [stdout]     |
[INFO] [stdout]  56 | ...ue, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: serde_json::Value, disablePlugins: Option<bool>, disa...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  56 -     pub(crate) fn createComposerInstance(&self, input: serde_json::Value, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: serde_json::Value, disablePlugins: Option<bool>, disableScripts: Option<bool>) -> crate::composer::composer::Composer {
[INFO] [stdout]  56 +     pub(crate) fn createComposerInstance(&self, input: serde_json::Value, io: Box<Self>, config: serde_json::Value, disablePlugins: Option<bool>, disableScripts: Option<bool>) -> crate::composer::composer::Composer {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/bump_command.rs:23:34
[INFO] [stdout]     |
[INFO] [stdout]  23 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, devOnly: bool, noDevOnly: bool, dryRun: bool, packagesFilter:...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  23 -     pub fn doBump(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, devOnly: bool, noDevOnly: bool, dryRun: bool, packagesFilter: Vec<serde_json::Value>, devOnlyFlagHint: String) -> i64 {
[INFO] [stdout]  23 +     pub fn doBump(&self, io: Box<Self>, devOnly: bool, noDevOnly: bool, dryRun: bool, packagesFilter: Vec<serde_json::Value>, devOnlyFlagHint: String) -> i64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/create_project_command.rs:20:42
[INFO] [stdout]     |
[INFO] [stdout]  20 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, input: serde_json::V...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  20 -     pub fn installProject(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, input: serde_json::Value, packageName: Option<String>, directory: Option<String>, packageVersion: Option<String>, stability: Option<String>, preferSource: bool, preferDist: bool, installDevPackages: bool, repositories: serde_json::Value, disablePlugins: bool, disableScripts: bool, noProgress: bool, noInstall: bool, platformRequirementFilter: Option<Box<dyn crate::composer::filter::platform_requirement_filter::platform_requirement_filter_interface::PlatformRequirementFilterInterface>>, secureHttp: bool, addRepository: bool) -> i64 {
[INFO] [stdout]  20 +     pub fn installProject(&self, io: Box<Self>, config: crate::composer::config::Config, input: serde_json::Value, packageName: Option<String>, directory: Option<String>, packageVersion: Option<String>, stability: Option<String>, preferSource: bool, preferDist: bool, installDevPackages: bool, repositories: serde_json::Value, disablePlugins: bool, disableScripts: bool, noProgress: bool, noInstall: bool, platformRequirementFilter: Option<Box<dyn crate::composer::filter::platform_requirement_filter::platform_requirement_filter_interface::PlatformRequirementFilterInterface>>, secureHttp: bool, addRepository: bool) -> i64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/create_project_command.rs:24:79
[INFO] [stdout]     |
[INFO] [stdout]  24 | ...ue, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, packageName: String,...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  24 -     pub(crate) fn installRootPackage(&self, input: serde_json::Value, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, packageName: String, platformRequirementFilter: Box<dyn crate::composer::filter::platform_requirement_filter::platform_requirement_filter_interface::PlatformRequirementFilterInterface>, directory: Option<String>, packageVersion: Option<String>, stability: Option<String>, preferSource: bool, preferDist: bool, installDevPackages: bool, repositories: Option<Vec<serde_json::Value>>, disablePlugins: bool, disableScripts: bool, noProgress: bool, secureHttp: bool) -> bool {
[INFO] [stdout]  24 +     pub(crate) fn installRootPackage(&self, input: serde_json::Value, io: Box<Self>, config: crate::composer::config::Config, packageName: String, platformRequirementFilter: Box<dyn crate::composer::filter::platform_requirement_filter::platform_requirement_filter_interface::PlatformRequirementFilterInterface>, directory: Option<String>, packageVersion: Option<String>, stability: Option<String>, preferSource: bool, preferDist: bool, installDevPackages: bool, repositories: Option<Vec<serde_json::Value>>, disablePlugins: bool, disableScripts: bool, noProgress: bool, secureHttp: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/advisory/auditor.rs:25:33
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn audit(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, repoSet: crate::composer::repository::reposi...
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  25 -     pub fn audit(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, repoSet: crate::composer::repository::repository_set::RepositorySet, packages: Vec<serde_json::Value>, format: String, warningOnly: bool, ignoreList: Vec<serde_json::Value>, abandoned: String, ignoredSeverities: Vec<serde_json::Value>, ignoreUnreachable: bool, ignoreAbandoned: Vec<serde_json::Value>) -> i64 {
[INFO] [stdout]  25 +     pub fn audit(&self, io: Box<Self>, repoSet: crate::composer::repository::repository_set::RepositorySet, packages: Vec<serde_json::Value>, format: String, warningOnly: bool, ignoreList: Vec<serde_json::Value>, abandoned: String, ignoredSeverities: Vec<serde_json::Value>, ignoreUnreachable: bool, ignoreAbandoned: Vec<serde_json::Value>) -> i64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/advisory/auditor.rs:45:40
[INFO] [stdout]     |
[INFO] [stdout]  45 |     fn outputAdvisories(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, advisories: Vec<serde_json::Value>, f...
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  45 -     fn outputAdvisories(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, advisories: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]  45 +     fn outputAdvisories(&self, io: Box<Self>, advisories: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/advisory/auditor.rs:53:45
[INFO] [stdout]     |
[INFO] [stdout]  53 | ...lain(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, advisories: Vec<serde_json::Value>) {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  53 -     fn outputAdvisoriesPlain(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, advisories: Vec<serde_json::Value>) {
[INFO] [stdout]  53 +     fn outputAdvisoriesPlain(&self, io: Box<Self>, advisories: Vec<serde_json::Value>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/require_command.rs:28:85
[INFO] [stdout]     |
[INFO] [stdout]  28 | ...ue, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, requirements: Vec<serde_json::Value>, requireKey: String, rem...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  28 -     fn doUpdate(&self, input: serde_json::Value, output: serde_json::Value, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, requirements: Vec<serde_json::Value>, requireKey: String, removeKey: String) -> i64 {
[INFO] [stdout]  28 +     fn doUpdate(&self, input: serde_json::Value, output: serde_json::Value, io: Box<Self>, requirements: Vec<serde_json::Value>, requireKey: String, removeKey: String) -> i64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/advisory/auditor.rs:57:47
[INFO] [stdout]     |
[INFO] [stdout]  57 | ...ages(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, packages: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  57 -     fn outputAbandonedPackages(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, packages: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]  57 +     fn outputAbandonedPackages(&self, io: Box<Self>, packages: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/self_update_command.rs:23:44
[INFO] [stdout]     |
[INFO] [stdout]  23 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  23 -     pub(crate) fn fetchKeys(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config) {
[INFO] [stdout]  23 +     pub(crate) fn fetchKeys(&self, io: Box<Self>, config: crate::composer::config::Config) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/show_command.rs:24:37
[INFO] [stdout]     |
[INFO] [stdout]  24 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, packages: Vec<serde_json::Value>, indent: String, writeVersio...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  24 -     fn printPackages(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, packages: Vec<serde_json::Value>, indent: String, writeVersion: bool, writeLatest: bool, writeDescription: bool, width: i64, versionLength: i64, nameLength: i64, latestLength: i64, writeReleaseDate: bool, releaseDateLength: i64) {
[INFO] [stdout]  24 +     fn printPackages(&self, io: Box<Self>, packages: Vec<serde_json::Value>, indent: String, writeVersion: bool, writeLatest: bool, writeDescription: bool, width: i64, versionLength: i64, nameLength: i64, latestLength: i64, writeReleaseDate: bool, releaseDateLength: i64) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/autoload/class_map_generator.rs:16:88
[INFO] [stdout]     |
[INFO] [stdout]  16 | ...ng>, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, namespace: Option<String>, autoloadType: Option<Stri...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  16 -     pub fn createMap(path: serde_json::Value, excluded: Option<String>, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, namespace: Option<String>, autoloadType: Option<String>, scannedFiles: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]  16 +     pub fn createMap(path: serde_json::Value, excluded: Option<String>, io: Option<Box<Self>>, namespace: Option<String>, autoloadType: Option<String>, scannedFiles: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/archive_command.rs:22:42
[INFO] [stdout]     |
[INFO] [stdout]  22 | ...hive(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, packageName:...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  22 -     pub(crate) fn archive(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, packageName: Option<String>, version: Option<String>, format: String, dest: String, fileName: Option<String>, ignoreFilters: bool, composer: Option<crate::composer::composer::Composer>) -> i64 {
[INFO] [stdout]  22 +     pub(crate) fn archive(&self, io: Box<Self>, config: crate::composer::config::Config, packageName: Option<String>, version: Option<String>, format: String, dest: String, fileName: Option<String>, ignoreFilters: bool, composer: Option<crate::composer::composer::Composer>) -> i64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/update_command.rs:20:48
[INFO] [stdout]     |
[INFO] [stdout]  20 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, input: serde_json::Value, output: serde_json::Value, composer...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  20 -     fn getPackagesInteractively(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, input: serde_json::Value, output: serde_json::Value, composer: crate::composer::composer::Composer, packages: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]  20 +     fn getPackagesInteractively(&self, io: Box<Self>, input: serde_json::Value, output: serde_json::Value, composer: crate::composer::composer::Composer, packages: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/archive_command.rs:26:48
[INFO] [stdout]     |
[INFO] [stdout]  26 | ...kage(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, packageName: String, version: Option<String>) {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  26 -     pub(crate) fn selectPackage(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, packageName: String, version: Option<String>) {
[INFO] [stdout]  26 +     pub(crate) fn selectPackage(&self, io: Box<Self>, packageName: String, version: Option<String>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/validate_command.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  20 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, name: String, errors: Vec<serde_json::Value>, warnings: Vec<s...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  20 -     fn outputResult(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, name: String, errors: Vec<serde_json::Value>, warnings: Vec<serde_json::Value>, checkPublish: bool, publishErrors: Vec<serde_json::Value>, checkLock: bool, lockErrors: Vec<serde_json::Value>, printSchemaUrl: bool) {
[INFO] [stdout]  20 +     fn outputResult(&self, io: Box<Self>, name: String, errors: Vec<serde_json::Value>, warnings: Vec<serde_json::Value>, checkPublish: bool, publishErrors: Vec<serde_json::Value>, checkLock: bool, lockErrors: Vec<serde_json::Value>, printSchemaUrl: bool) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/base_command.rs:44:33
[INFO] [stdout]     |
[INFO] [stdout]  44 |     pub fn setIO(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  44 -     pub fn setIO(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) {
[INFO] [stdout]  44 +     pub fn setIO(&self, io: Box<Self>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/base_command.rs:56:83
[INFO] [stdout]     |
[INFO] [stdout]  56 | ...son::Value, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: serde_json::Value, disablePlugins: Option<boo...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  56 -     pub(crate) fn createComposerInstance(&self, input: serde_json::Value, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: serde_json::Value, disablePlugins: Option<bool>, disableScripts: Option<bool>) -> crate::composer::composer::Composer {
[INFO] [stdout]  56 +     pub(crate) fn createComposerInstance(&self, input: serde_json::Value, io: Box<Self>, config: serde_json::Value, disablePlugins: Option<bool>, disableScripts: Option<bool>) -> crate::composer::composer::Composer {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/bump_command.rs:23:34
[INFO] [stdout]     |
[INFO] [stdout]  23 |     pub fn doBump(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, devOnly: bool, noDevOnly: bool, dryRun: boo...
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  23 -     pub fn doBump(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, devOnly: bool, noDevOnly: bool, dryRun: bool, packagesFilter: Vec<serde_json::Value>, devOnlyFlagHint: String) -> i64 {
[INFO] [stdout]  23 +     pub fn doBump(&self, io: Box<Self>, devOnly: bool, noDevOnly: bool, dryRun: bool, packagesFilter: Vec<serde_json::Value>, devOnlyFlagHint: String) -> i64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/config/mod.rs:100:67
[INFO] [stdout]     |
[INFO] [stdout] 100 | ... Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, repoOptions: Vec<serde_json::Value>) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 100 -     pub fn prohibitUrlByConfig(&self, url: String, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, repoOptions: Vec<serde_json::Value>) {
[INFO] [stdout] 100 +     pub fn prohibitUrlByConfig(&self, url: String, io: Option<Box<Self>>, repoOptions: Vec<serde_json::Value>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/console/application.rs:40:32
[INFO] [stdout]     |
[INFO] [stdout]  40 |     pub fn getIO(&self) -> Box<dyn crate::composer::i_o::i_o_interface::IOInterface> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  40 -     pub fn getIO(&self) -> Box<dyn crate::composer::i_o::i_o_interface::IOInterface> {
[INFO] [stdout]  40 +     pub fn getIO(&self) -> Box<Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/create_project_command.rs:20:42
[INFO] [stdout]     |
[INFO] [stdout]  20 | ...ject(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, input: serde...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  20 -     pub fn installProject(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, input: serde_json::Value, packageName: Option<String>, directory: Option<String>, packageVersion: Option<String>, stability: Option<String>, preferSource: bool, preferDist: bool, installDevPackages: bool, repositories: serde_json::Value, disablePlugins: bool, disableScripts: bool, noProgress: bool, noInstall: bool, platformRequirementFilter: Option<Box<dyn crate::composer::filter::platform_requirement_filter::platform_requirement_filter_interface::PlatformRequirementFilterInterface>>, secureHttp: bool, addRepository: bool) -> i64 {
[INFO] [stdout]  20 +     pub fn installProject(&self, io: Box<Self>, config: crate::composer::config::Config, input: serde_json::Value, packageName: Option<String>, directory: Option<String>, packageVersion: Option<String>, stability: Option<String>, preferSource: bool, preferDist: bool, installDevPackages: bool, repositories: serde_json::Value, disablePlugins: bool, disableScripts: bool, noProgress: bool, noInstall: bool, platformRequirementFilter: Option<Box<dyn crate::composer::filter::platform_requirement_filter::platform_requirement_filter_interface::PlatformRequirementFilterInterface>>, secureHttp: bool, addRepository: bool) -> i64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/create_project_command.rs:24:79
[INFO] [stdout]     |
[INFO] [stdout]  24 | ...son::Value, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, packageName:...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  24 -     pub(crate) fn installRootPackage(&self, input: serde_json::Value, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, packageName: String, platformRequirementFilter: Box<dyn crate::composer::filter::platform_requirement_filter::platform_requirement_filter_interface::PlatformRequirementFilterInterface>, directory: Option<String>, packageVersion: Option<String>, stability: Option<String>, preferSource: bool, preferDist: bool, installDevPackages: bool, repositories: Option<Vec<serde_json::Value>>, disablePlugins: bool, disableScripts: bool, noProgress: bool, secureHttp: bool) -> bool {
[INFO] [stdout]  24 +     pub(crate) fn installRootPackage(&self, input: serde_json::Value, io: Box<Self>, config: crate::composer::config::Config, packageName: String, platformRequirementFilter: Box<dyn crate::composer::filter::platform_requirement_filter::platform_requirement_filter_interface::PlatformRequirementFilterInterface>, directory: Option<String>, packageVersion: Option<String>, stability: Option<String>, preferSource: bool, preferDist: bool, installDevPackages: bool, repositories: Option<Vec<serde_json::Value>>, disablePlugins: bool, disableScripts: bool, noProgress: bool, secureHttp: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/require_command.rs:28:85
[INFO] [stdout]     |
[INFO] [stdout]  28 | ...son::Value, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, requirements: Vec<serde_json::Value>, requireKey: Str...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  28 -     fn doUpdate(&self, input: serde_json::Value, output: serde_json::Value, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, requirements: Vec<serde_json::Value>, requireKey: String, removeKey: String) -> i64 {
[INFO] [stdout]  28 +     fn doUpdate(&self, input: serde_json::Value, output: serde_json::Value, io: Box<Self>, requirements: Vec<serde_json::Value>, requireKey: String, removeKey: String) -> i64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/self_update_command.rs:23:44
[INFO] [stdout]     |
[INFO] [stdout]  23 | ...Keys(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config) {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  23 -     pub(crate) fn fetchKeys(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config) {
[INFO] [stdout]  23 +     pub(crate) fn fetchKeys(&self, io: Box<Self>, config: crate::composer::config::Config) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/show_command.rs:24:37
[INFO] [stdout]     |
[INFO] [stdout]  24 |     fn printPackages(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, packages: Vec<serde_json::Value>, indent...
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  24 -     fn printPackages(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, packages: Vec<serde_json::Value>, indent: String, writeVersion: bool, writeLatest: bool, writeDescription: bool, width: i64, versionLength: i64, nameLength: i64, latestLength: i64, writeReleaseDate: bool, releaseDateLength: i64) {
[INFO] [stdout]  24 +     fn printPackages(&self, io: Box<Self>, packages: Vec<serde_json::Value>, indent: String, writeVersion: bool, writeLatest: bool, writeDescription: bool, width: i64, versionLength: i64, nameLength: i64, latestLength: i64, writeReleaseDate: bool, releaseDateLength: i64) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/update_command.rs:20:48
[INFO] [stdout]     |
[INFO] [stdout]  20 | ...vely(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, input: serde_json::Value, output: serde_json::Value, ...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  20 -     fn getPackagesInteractively(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, input: serde_json::Value, output: serde_json::Value, composer: crate::composer::composer::Composer, packages: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]  20 +     fn getPackagesInteractively(&self, io: Box<Self>, input: serde_json::Value, output: serde_json::Value, composer: crate::composer::composer::Composer, packages: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/validate_command.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  20 |     fn outputResult(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, name: String, errors: Vec<serde_json::Val...
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  20 -     fn outputResult(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, name: String, errors: Vec<serde_json::Value>, warnings: Vec<serde_json::Value>, checkPublish: bool, publishErrors: Vec<serde_json::Value>, checkLock: bool, lockErrors: Vec<serde_json::Value>, printSchemaUrl: bool) {
[INFO] [stdout]  20 +     fn outputResult(&self, io: Box<Self>, name: String, errors: Vec<serde_json::Value>, warnings: Vec<serde_json::Value>, checkPublish: bool, publishErrors: Vec<serde_json::Value>, checkLock: bool, lockErrors: Vec<serde_json::Value>, printSchemaUrl: bool) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/config/mod.rs:100:67
[INFO] [stdout]     |
[INFO] [stdout] 100 | ...ing, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, repoOptions: Vec<serde_json::Value>) {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 100 -     pub fn prohibitUrlByConfig(&self, url: String, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, repoOptions: Vec<serde_json::Value>) {
[INFO] [stdout] 100 +     pub fn prohibitUrlByConfig(&self, url: String, io: Option<Box<Self>>, repoOptions: Vec<serde_json::Value>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/console/application.rs:40:32
[INFO] [stdout]     |
[INFO] [stdout]  40 |     pub fn getIO(&self) -> Box<dyn crate::composer::i_o::i_o_interface::IOInterface> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  40 -     pub fn getIO(&self) -> Box<dyn crate::composer::i_o::i_o_interface::IOInterface> {
[INFO] [stdout]  40 +     pub fn getIO(&self) -> Box<Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:24:40
[INFO] [stdout]     |
[INFO] [stdout]  24 | ... Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, cwd: Option<String>) -> crate::composer::config::Config {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  24 -     pub fn createConfig(io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, cwd: Option<String>) -> crate::composer::config::Config {
[INFO] [stdout]  24 +     pub fn createConfig(io: Option<Box<Self>>, cwd: Option<String>) -> crate::composer::config::Config {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:44:42
[INFO] [stdout]     |
[INFO] [stdout]  44 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, localConfig: serde_json::Value, disablePlugins: serde_json::V...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  44 -     pub fn createComposer(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, localConfig: serde_json::Value, disablePlugins: serde_json::Value, cwd: Option<String>, fullLoad: bool, disableScripts: bool) {
[INFO] [stdout]  44 +     pub fn createComposer(&self, io: Box<Self>, localConfig: serde_json::Value, disablePlugins: serde_json::Value, cwd: Option<String>, fullLoad: bool, disableScripts: bool) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:48:33
[INFO] [stdout]     |
[INFO] [stdout]  48 | ...bal(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, disablePlugins: bool, disableScripts: bool) -> Option<crate::...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  48 -     pub fn createGlobal(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, disablePlugins: bool, disableScripts: bool) -> Option<crate::composer::composer::Composer> {
[INFO] [stdout]  48 +     pub fn createGlobal(io: Box<Self>, disablePlugins: bool, disableScripts: bool) -> Option<crate::composer::composer::Composer> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:52:53
[INFO] [stdout]     |
[INFO] [stdout]  52 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, rm: crate::composer::repository::repository_manager::Reposito...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  52 -     pub(crate) fn addLocalRepository(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, rm: crate::composer::repository::repository_manager::RepositoryManager, vendorDir: String, rootPackage: Box<dyn crate::composer::package::root_package_interface::RootPackageInterface>, process: Option<crate::composer::util::process_executor::ProcessExecutor>) {
[INFO] [stdout]  52 +     pub(crate) fn addLocalRepository(&self, io: Box<Self>, rm: crate::composer::repository::repository_manager::RepositoryManager, vendorDir: String, rootPackage: Box<dyn crate::composer::package::root_package_interface::RootPackageInterface>, process: Option<crate::composer::util::process_executor::ProcessExecutor>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:56:55
[INFO] [stdout]     |
[INFO] [stdout]  56 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, disablePlugins: serd...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  56 -     pub(crate) fn createGlobalComposer(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, disablePlugins: serde_json::Value, disableScripts: bool, fullLoad: bool) -> Option<crate::composer::partial_composer::PartialComposer> {
[INFO] [stdout]  56 +     pub(crate) fn createGlobalComposer(&self, io: Box<Self>, config: crate::composer::config::Config, disablePlugins: serde_json::Value, disableScripts: bool, fullLoad: bool) -> Option<crate::composer::partial_composer::PartialComposer> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:60:49
[INFO] [stdout]     |
[INFO] [stdout]  60 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, httpDownloader: crat...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  60 -     pub fn createDownloadManager(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, httpDownloader: crate::composer::util::http_downloader::HttpDownloader, process: crate::composer::util::process_executor::ProcessExecutor, eventDispatcher: Option<crate::composer::event_dispatcher::event_dispatcher::EventDispatcher>) -> crate::composer::downloader::download_manager::DownloadManager {
[INFO] [stdout]  60 +     pub fn createDownloadManager(&self, io: Box<Self>, config: crate::composer::config::Config, httpDownloader: crate::composer::util::http_downloader::HttpDownloader, process: crate::composer::util::process_executor::ProcessExecutor, eventDispatcher: Option<crate::composer::event_dispatcher::event_dispatcher::EventDispatcher>) -> crate::composer::downloader::download_manager::DownloadManager {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:68:54
[INFO] [stdout]     |
[INFO] [stdout]  68 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, composer: crate::composer::composer::Composer, globalComposer...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  68 -     pub(crate) fn createPluginManager(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, composer: crate::composer::composer::Composer, globalComposer: Option<crate::composer::partial_composer::PartialComposer>, disablePlugins: serde_json::Value) -> crate::composer::plugin::plugin_manager::PluginManager {
[INFO] [stdout]  68 +     pub(crate) fn createPluginManager(&self, io: Box<Self>, composer: crate::composer::composer::Composer, globalComposer: Option<crate::composer::partial_composer::PartialComposer>, disablePlugins: serde_json::Value) -> crate::composer::plugin::plugin_manager::PluginManager {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:72:97
[INFO] [stdout]     |
[INFO] [stdout]  72 | ...op, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, eventDispatcher: Option<crate::composer::event_dispatcher::ev...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  72 -     pub fn createInstallationManager(&self, r#loop: crate::composer::util::loop_::Loop, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, eventDispatcher: Option<crate::composer::event_dispatcher::event_dispatcher::EventDispatcher>) -> crate::composer::installer::installation_manager::InstallationManager {
[INFO] [stdout]  72 +     pub fn createInstallationManager(&self, r#loop: crate::composer::util::loop_::Loop, io: Box<Self>, eventDispatcher: Option<crate::composer::event_dispatcher::event_dispatcher::EventDispatcher>) -> crate::composer::installer::installation_manager::InstallationManager {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:76:195
[INFO] [stdout]     |
[INFO] [stdout]  76 | ...er, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, process: Option<crate::composer::util::process_executor::Proc...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  76 -     pub(crate) fn createDefaultInstallers(&self, im: crate::composer::installer::installation_manager::InstallationManager, composer: crate::composer::partial_composer::PartialComposer, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, process: Option<crate::composer::util::process_executor::ProcessExecutor>) {
[INFO] [stdout]  76 +     pub(crate) fn createDefaultInstallers(&self, im: crate::composer::installer::installation_manager::InstallationManager, composer: crate::composer::partial_composer::PartialComposer, io: Box<Self>, process: Option<crate::composer::util::process_executor::ProcessExecutor>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:84:314
[INFO] [stdout]     |
[INFO] [stdout]  84 | ...er, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) -> crate::composer::package::loader::root_package_loader::Roo...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  84 -     pub(crate) fn loadRootPackage(&self, rm: crate::composer::repository::repository_manager::RepositoryManager, config: crate::composer::config::Config, parser: crate::composer::package::version::version_parser::VersionParser, guesser: crate::composer::package::version::version_guesser::VersionGuesser, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) -> crate::composer::package::loader::root_package_loader::RootPackageLoader {
[INFO] [stdout]  84 +     pub(crate) fn loadRootPackage(&self, rm: crate::composer::repository::repository_manager::RepositoryManager, config: crate::composer::config::Config, parser: crate::composer::package::version::version_parser::VersionParser, guesser: crate::composer::package::version::version_guesser::VersionGuesser, io: Box<Self>) -> crate::composer::package::loader::root_package_loader::RootPackageLoader {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:88:27
[INFO] [stdout]     |
[INFO] [stdout]  88 | ...ate(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: serde_json::Value, disablePlugins: serde_json::Value,...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  88 -     pub fn create(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: serde_json::Value, disablePlugins: serde_json::Value, disableScripts: bool) -> crate::composer::composer::Composer {
[INFO] [stdout]  88 +     pub fn create(io: Box<Self>, config: serde_json::Value, disablePlugins: serde_json::Value, disableScripts: bool) -> crate::composer::composer::Composer {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:92:41
[INFO] [stdout]     |
[INFO] [stdout]  92 | ...der(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, options: Vec<serde_j...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  92 -     pub fn createHttpDownloader(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, options: Vec<serde_json::Value>) -> crate::composer::util::http_downloader::HttpDownloader {
[INFO] [stdout]  92 +     pub fn createHttpDownloader(io: Box<Self>, config: crate::composer::config::Config, options: Vec<serde_json::Value>) -> crate::composer::util::http_downloader::HttpDownloader {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:96:84
[INFO] [stdout]     |
[INFO] [stdout]  96 | ... Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  96 -     fn loadComposerAuthEnv(config: crate::composer::config::Config, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>) {
[INFO] [stdout]  96 +     fn loadComposerAuthEnv(config: crate::composer::config::Config, io: Option<Box<Self>>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:108:42
[INFO] [stdout]     |
[INFO] [stdout] 108 | ... Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, fileOrData: serde_json::Value, schema: i64, source: Option<S...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 108 -     fn validateJsonSchema(io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, fileOrData: serde_json::Value, schema: i64, source: Option<String>) {
[INFO] [stdout] 108 +     fn validateJsonSchema(io: Option<Box<Self>>, fileOrData: serde_json::Value, schema: i64, source: Option<String>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:24:40
[INFO] [stdout]     |
[INFO] [stdout]  24 |     pub fn createConfig(io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, cwd: Option<String>) -> crate::compo...
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  24 -     pub fn createConfig(io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, cwd: Option<String>) -> crate::composer::config::Config {
[INFO] [stdout]  24 +     pub fn createConfig(io: Option<Box<Self>>, cwd: Option<String>) -> crate::composer::config::Config {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:44:42
[INFO] [stdout]     |
[INFO] [stdout]  44 | ...oser(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, localConfig: serde_json::Value, disablePlugins: serde...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  44 -     pub fn createComposer(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, localConfig: serde_json::Value, disablePlugins: serde_json::Value, cwd: Option<String>, fullLoad: bool, disableScripts: bool) {
[INFO] [stdout]  44 +     pub fn createComposer(&self, io: Box<Self>, localConfig: serde_json::Value, disablePlugins: serde_json::Value, cwd: Option<String>, fullLoad: bool, disableScripts: bool) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:48:33
[INFO] [stdout]     |
[INFO] [stdout]  48 |     pub fn createGlobal(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, disablePlugins: bool, disableScripts: bool) ...
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  48 -     pub fn createGlobal(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, disablePlugins: bool, disableScripts: bool) -> Option<crate::composer::composer::Composer> {
[INFO] [stdout]  48 +     pub fn createGlobal(io: Box<Self>, disablePlugins: bool, disableScripts: bool) -> Option<crate::composer::composer::Composer> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:52:53
[INFO] [stdout]     |
[INFO] [stdout]  52 | ...tory(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, rm: crate::composer::repository::repository_manager::...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  52 -     pub(crate) fn addLocalRepository(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, rm: crate::composer::repository::repository_manager::RepositoryManager, vendorDir: String, rootPackage: Box<dyn crate::composer::package::root_package_interface::RootPackageInterface>, process: Option<crate::composer::util::process_executor::ProcessExecutor>) {
[INFO] [stdout]  52 +     pub(crate) fn addLocalRepository(&self, io: Box<Self>, rm: crate::composer::repository::repository_manager::RepositoryManager, vendorDir: String, rootPackage: Box<dyn crate::composer::package::root_package_interface::RootPackageInterface>, process: Option<crate::composer::util::process_executor::ProcessExecutor>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:56:55
[INFO] [stdout]     |
[INFO] [stdout]  56 | ...oser(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, disablePlugi...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  56 -     pub(crate) fn createGlobalComposer(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, disablePlugins: serde_json::Value, disableScripts: bool, fullLoad: bool) -> Option<crate::composer::partial_composer::PartialComposer> {
[INFO] [stdout]  56 +     pub(crate) fn createGlobalComposer(&self, io: Box<Self>, config: crate::composer::config::Config, disablePlugins: serde_json::Value, disableScripts: bool, fullLoad: bool) -> Option<crate::composer::partial_composer::PartialComposer> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:60:49
[INFO] [stdout]     |
[INFO] [stdout]  60 | ...ager(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, httpDownload...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  60 -     pub fn createDownloadManager(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, httpDownloader: crate::composer::util::http_downloader::HttpDownloader, process: crate::composer::util::process_executor::ProcessExecutor, eventDispatcher: Option<crate::composer::event_dispatcher::event_dispatcher::EventDispatcher>) -> crate::composer::downloader::download_manager::DownloadManager {
[INFO] [stdout]  60 +     pub fn createDownloadManager(&self, io: Box<Self>, config: crate::composer::config::Config, httpDownloader: crate::composer::util::http_downloader::HttpDownloader, process: crate::composer::util::process_executor::ProcessExecutor, eventDispatcher: Option<crate::composer::event_dispatcher::event_dispatcher::EventDispatcher>) -> crate::composer::downloader::download_manager::DownloadManager {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/installer/installation_manager.rs:88:42
[INFO] [stdout]     |
[INFO] [stdout]  88 |     pub fn notifyInstalls(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  88 -     pub fn notifyInstalls(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) {
[INFO] [stdout]  88 +     pub fn notifyInstalls(&self, io: Box<Self>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:68:54
[INFO] [stdout]     |
[INFO] [stdout]  68 | ...ager(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, composer: crate::composer::composer::Composer, global...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  68 -     pub(crate) fn createPluginManager(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, composer: crate::composer::composer::Composer, globalComposer: Option<crate::composer::partial_composer::PartialComposer>, disablePlugins: serde_json::Value) -> crate::composer::plugin::plugin_manager::PluginManager {
[INFO] [stdout]  68 +     pub(crate) fn createPluginManager(&self, io: Box<Self>, composer: crate::composer::composer::Composer, globalComposer: Option<crate::composer::partial_composer::PartialComposer>, disablePlugins: serde_json::Value) -> crate::composer::plugin::plugin_manager::PluginManager {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/installer/installer_event.rs:16:32
[INFO] [stdout]     |
[INFO] [stdout]  16 |     pub fn getIO(&self) -> Box<dyn crate::composer::i_o::i_o_interface::IOInterface> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  16 -     pub fn getIO(&self) -> Box<dyn crate::composer::i_o::i_o_interface::IOInterface> {
[INFO] [stdout]  16 +     pub fn getIO(&self) -> Box<Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:72:97
[INFO] [stdout]     |
[INFO] [stdout]  72 | ...oop_::Loop, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, eventDispatcher: Option<crate::composer::event_dispat...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  72 -     pub fn createInstallationManager(&self, r#loop: crate::composer::util::loop_::Loop, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, eventDispatcher: Option<crate::composer::event_dispatcher::event_dispatcher::EventDispatcher>) -> crate::composer::installer::installation_manager::InstallationManager {
[INFO] [stdout]  72 +     pub fn createInstallationManager(&self, r#loop: crate::composer::util::loop_::Loop, io: Box<Self>, eventDispatcher: Option<crate::composer::event_dispatcher::event_dispatcher::EventDispatcher>) -> crate::composer::installer::installation_manager::InstallationManager {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:76:195
[INFO] [stdout]     |
[INFO] [stdout]  76 | ...alComposer, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, process: Option<crate::composer::util::process_execut...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  76 -     pub(crate) fn createDefaultInstallers(&self, im: crate::composer::installer::installation_manager::InstallationManager, composer: crate::composer::partial_composer::PartialComposer, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, process: Option<crate::composer::util::process_executor::ProcessExecutor>) {
[INFO] [stdout]  76 +     pub(crate) fn createDefaultInstallers(&self, im: crate::composer::installer::installation_manager::InstallationManager, composer: crate::composer::partial_composer::PartialComposer, io: Box<Self>, process: Option<crate::composer::util::process_executor::ProcessExecutor>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:84:314
[INFO] [stdout]     |
[INFO] [stdout]  84 | ...ionGuesser, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) -> crate::composer::package::loader::root_package_loa...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  84 -     pub(crate) fn loadRootPackage(&self, rm: crate::composer::repository::repository_manager::RepositoryManager, config: crate::composer::config::Config, parser: crate::composer::package::version::version_parser::VersionParser, guesser: crate::composer::package::version::version_guesser::VersionGuesser, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) -> crate::composer::package::loader::root_package_loader::RootPackageLoader {
[INFO] [stdout]  84 +     pub(crate) fn loadRootPackage(&self, rm: crate::composer::repository::repository_manager::RepositoryManager, config: crate::composer::config::Config, parser: crate::composer::package::version::version_parser::VersionParser, guesser: crate::composer::package::version::version_guesser::VersionGuesser, io: Box<Self>) -> crate::composer::package::loader::root_package_loader::RootPackageLoader {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:88:27
[INFO] [stdout]     |
[INFO] [stdout]  88 |     pub fn create(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: serde_json::Value, disablePlugins: serde_j...
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  88 -     pub fn create(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: serde_json::Value, disablePlugins: serde_json::Value, disableScripts: bool) -> crate::composer::composer::Composer {
[INFO] [stdout]  88 +     pub fn create(io: Box<Self>, config: serde_json::Value, disablePlugins: serde_json::Value, disableScripts: bool) -> crate::composer::composer::Composer {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:92:41
[INFO] [stdout]     |
[INFO] [stdout]  92 |     pub fn createHttpDownloader(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Con...
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  92 -     pub fn createHttpDownloader(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, options: Vec<serde_json::Value>) -> crate::composer::util::http_downloader::HttpDownloader {
[INFO] [stdout]  92 +     pub fn createHttpDownloader(io: Box<Self>, config: crate::composer::config::Config, options: Vec<serde_json::Value>) -> crate::composer::util::http_downloader::HttpDownloader {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:96:84
[INFO] [stdout]     |
[INFO] [stdout]  96 | ...fig, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>) {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  96 -     fn loadComposerAuthEnv(config: crate::composer::config::Config, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>) {
[INFO] [stdout]  96 +     fn loadComposerAuthEnv(config: crate::composer::config::Config, io: Option<Box<Self>>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/installer/package_event.rs:16:32
[INFO] [stdout]     |
[INFO] [stdout]  16 |     pub fn getIO(&self) -> Box<dyn crate::composer::i_o::i_o_interface::IOInterface> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  16 -     pub fn getIO(&self) -> Box<dyn crate::composer::i_o::i_o_interface::IOInterface> {
[INFO] [stdout]  16 +     pub fn getIO(&self) -> Box<Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/factory.rs:108:42
[INFO] [stdout]     |
[INFO] [stdout] 108 | ...hema(io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, fileOrData: serde_json::Value, schema: i64, source: ...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 108 -     fn validateJsonSchema(io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, fileOrData: serde_json::Value, schema: i64, source: Option<String>) {
[INFO] [stdout] 108 +     fn validateJsonSchema(io: Option<Box<Self>>, fileOrData: serde_json::Value, schema: i64, source: Option<String>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/installer/mod.rs:99:27
[INFO] [stdout]     |
[INFO] [stdout]  99 | ...ate(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, composer: crate::composer::composer::Composer) -> Self {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  99 -     pub fn create(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, composer: crate::composer::composer::Composer) -> Self {
[INFO] [stdout]  99 +     pub fn create(io: Box<Self>, composer: crate::composer::composer::Composer) -> Self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/installer/installation_manager.rs:88:42
[INFO] [stdout]     |
[INFO] [stdout]  88 |     pub fn notifyInstalls(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  88 -     pub fn notifyInstalls(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) {
[INFO] [stdout]  88 +     pub fn notifyInstalls(&self, io: Box<Self>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/installer/installer_event.rs:16:32
[INFO] [stdout]     |
[INFO] [stdout]  16 |     pub fn getIO(&self) -> Box<dyn crate::composer::i_o::i_o_interface::IOInterface> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  16 -     pub fn getIO(&self) -> Box<dyn crate::composer::i_o::i_o_interface::IOInterface> {
[INFO] [stdout]  16 +     pub fn getIO(&self) -> Box<Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/installer/package_event.rs:16:32
[INFO] [stdout]     |
[INFO] [stdout]  16 |     pub fn getIO(&self) -> Box<dyn crate::composer::i_o::i_o_interface::IOInterface> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  16 -     pub fn getIO(&self) -> Box<dyn crate::composer::i_o::i_o_interface::IOInterface> {
[INFO] [stdout]  16 +     pub fn getIO(&self) -> Box<Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/installer/mod.rs:99:27
[INFO] [stdout]     |
[INFO] [stdout]  99 |     pub fn create(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, composer: crate::composer::composer::Composer) -> ...
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  99 -     pub fn create(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, composer: crate::composer::composer::Composer) -> Self {
[INFO] [stdout]  99 +     pub fn create(io: Box<Self>, composer: crate::composer::composer::Composer) -> Self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/package/version/version_selector.rs:12:204
[INFO] [stdout]     |
[INFO] [stdout]  12 | ... Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, showWarnings: serde_json::Value) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  12 -     pub fn findBestCandidate(&self, packageName: String, targetPackageVersion: Option<String>, preferredStability: String, platformRequirementFilter: serde_json::Value, repoSetFlags: i64, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, showWarnings: serde_json::Value) {
[INFO] [stdout]  12 +     pub fn findBestCandidate(&self, packageName: String, targetPackageVersion: Option<String>, preferredStability: String, platformRequirementFilter: serde_json::Value, repoSetFlags: i64, io: Option<Box<Self>>, showWarnings: serde_json::Value) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/package/version/version_selector.rs:12:204
[INFO] [stdout]     |
[INFO] [stdout]  12 | ...i64, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, showWarnings: serde_json::Value) {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  12 -     pub fn findBestCandidate(&self, packageName: String, targetPackageVersion: Option<String>, preferredStability: String, platformRequirementFilter: serde_json::Value, repoSetFlags: i64, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, showWarnings: serde_json::Value) {
[INFO] [stdout]  12 +     pub fn findBestCandidate(&self, packageName: String, targetPackageVersion: Option<String>, preferredStability: String, platformRequirementFilter: serde_json::Value, repoSetFlags: i64, io: Option<Box<Self>>, showWarnings: serde_json::Value) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/repository_factory.rs:12:37
[INFO] [stdout]     |
[INFO] [stdout]  12 | ...ing(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, repository: String, ...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  12 -     pub fn configFromString(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, repository: String, allowFilesystem: bool) {
[INFO] [stdout]  12 +     pub fn configFromString(io: Box<Self>, config: crate::composer::config::Config, repository: String, allowFilesystem: bool) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/repository_factory.rs:16:31
[INFO] [stdout]     |
[INFO] [stdout]  16 | ...ing(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, repository: String, ...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  16 -     pub fn fromString(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, repository: String, allowFilesystem: bool, rm: Option<crate::composer::repository::repository_manager::RepositoryManager>) -> Box<dyn crate::composer::repository::repository_interface::RepositoryInterface> {
[INFO] [stdout]  16 +     pub fn fromString(io: Box<Self>, config: crate::composer::config::Config, repository: String, allowFilesystem: bool, rm: Option<crate::composer::repository::repository_manager::RepositoryManager>) -> Box<dyn crate::composer::repository::repository_interface::RepositoryInterface> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/repository_factory.rs:20:31
[INFO] [stdout]     |
[INFO] [stdout]  20 | ...epo(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, repoConfig: Vec<serd...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  20 -     pub fn createRepo(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, repoConfig: Vec<serde_json::Value>, rm: Option<crate::composer::repository::repository_manager::RepositoryManager>) -> Box<dyn crate::composer::repository::repository_interface::RepositoryInterface> {
[INFO] [stdout]  20 +     pub fn createRepo(io: Box<Self>, config: crate::composer::config::Config, repoConfig: Vec<serde_json::Value>, rm: Option<crate::composer::repository::repository_manager::RepositoryManager>) -> Box<dyn crate::composer::repository::repository_interface::RepositoryInterface> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/repository_factory.rs:24:40
[INFO] [stdout]     |
[INFO] [stdout]  24 | ... Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, config: Option<crate::composer::config::Config>, rm: Option<...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  24 -     pub fn defaultRepos(io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, config: Option<crate::composer::config::Config>, rm: Option<crate::composer::repository::repository_manager::RepositoryManager>) -> Vec<serde_json::Value> {
[INFO] [stdout]  24 +     pub fn defaultRepos(io: Option<Box<Self>>, config: Option<crate::composer::config::Config>, rm: Option<crate::composer::repository::repository_manager::RepositoryManager>) -> Vec<serde_json::Value> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/repository_factory.rs:28:28
[INFO] [stdout]     |
[INFO] [stdout]  28 | ...ger(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, httpDownloader: Opti...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  28 -     pub fn manager(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, httpDownloader: Option<crate::composer::util::http_downloader::HttpDownloader>, eventDispatcher: Option<crate::composer::event_dispatcher::event_dispatcher::EventDispatcher>, process: Option<crate::composer::util::process_executor::ProcessExecutor>) -> crate::composer::repository::repository_manager::RepositoryManager {
[INFO] [stdout]  28 +     pub fn manager(io: Box<Self>, config: crate::composer::config::Config, httpDownloader: Option<crate::composer::util::http_downloader::HttpDownloader>, eventDispatcher: Option<crate::composer::event_dispatcher::event_dispatcher::EventDispatcher>, process: Option<crate::composer::util::process_executor::ProcessExecutor>) -> crate::composer::repository::repository_manager::RepositoryManager {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/repository_factory.rs:32:51
[INFO] [stdout]     |
[INFO] [stdout]  32 |     pub fn defaultReposWithDefaultManager(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) -> Vec<serde_json::Value> {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  32 -     pub fn defaultReposWithDefaultManager(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) -> Vec<serde_json::Value> {
[INFO] [stdout]  32 +     pub fn defaultReposWithDefaultManager(io: Box<Self>) -> Vec<serde_json::Value> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/repository_set.rs:55:103
[INFO] [stdout]     |
[INFO] [stdout]  55 | ...st, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, eventDispatcher: Option<crate::composer::event_dispatcher::ev...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  55 -     pub fn createPool(&self, request: crate::composer::dependency_resolver::request::Request, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, eventDispatcher: Option<crate::composer::event_dispatcher::event_dispatcher::EventDispatcher>, poolOptimizer: Option<crate::composer::dependency_resolver::pool_optimizer::PoolOptimizer>, ignoredTypes: Vec<serde_json::Value>, allowedTypes: Option<Vec<serde_json::Value>>, securityAdvisoryPoolFilter: Option<crate::composer::dependency_resolver::security_advisory_pool_filter::SecurityAdvisoryPoolFilter>) -> crate::composer::dependency_resolver::pool::Pool {
[INFO] [stdout]  55 +     pub fn createPool(&self, request: crate::composer::dependency_resolver::request::Request, io: Box<Self>, eventDispatcher: Option<crate::composer::event_dispatcher::event_dispatcher::EventDispatcher>, poolOptimizer: Option<crate::composer::dependency_resolver::pool_optimizer::PoolOptimizer>, ignoredTypes: Vec<serde_json::Value>, allowedTypes: Option<Vec<serde_json::Value>>, securityAdvisoryPoolFilter: Option<crate::composer::dependency_resolver::security_advisory_pool_filter::SecurityAdvisoryPoolFilter>) -> crate::composer::dependency_resolver::pool::Pool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/forgejo_driver.rs:52:29
[INFO] [stdout]     |
[INFO] [stdout]  52 | ...rts(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: b...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  52 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  52 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/repository_factory.rs:12:37
[INFO] [stdout]     |
[INFO] [stdout]  12 |     pub fn configFromString(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config,...
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  12 -     pub fn configFromString(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, repository: String, allowFilesystem: bool) {
[INFO] [stdout]  12 +     pub fn configFromString(io: Box<Self>, config: crate::composer::config::Config, repository: String, allowFilesystem: bool) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/repository_factory.rs:16:31
[INFO] [stdout]     |
[INFO] [stdout]  16 |     pub fn fromString(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, repos...
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  16 -     pub fn fromString(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, repository: String, allowFilesystem: bool, rm: Option<crate::composer::repository::repository_manager::RepositoryManager>) -> Box<dyn crate::composer::repository::repository_interface::RepositoryInterface> {
[INFO] [stdout]  16 +     pub fn fromString(io: Box<Self>, config: crate::composer::config::Config, repository: String, allowFilesystem: bool, rm: Option<crate::composer::repository::repository_manager::RepositoryManager>) -> Box<dyn crate::composer::repository::repository_interface::RepositoryInterface> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/fossil_driver.rs:56:29
[INFO] [stdout]     |
[INFO] [stdout]  56 | ...rts(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: b...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  56 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  56 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/repository_factory.rs:20:31
[INFO] [stdout]     |
[INFO] [stdout]  20 |     pub fn createRepo(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, repoC...
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  20 -     pub fn createRepo(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, repoConfig: Vec<serde_json::Value>, rm: Option<crate::composer::repository::repository_manager::RepositoryManager>) -> Box<dyn crate::composer::repository::repository_interface::RepositoryInterface> {
[INFO] [stdout]  20 +     pub fn createRepo(io: Box<Self>, config: crate::composer::config::Config, repoConfig: Vec<serde_json::Value>, rm: Option<crate::composer::repository::repository_manager::RepositoryManager>) -> Box<dyn crate::composer::repository::repository_interface::RepositoryInterface> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/git_bitbucket_driver.rs:76:29
[INFO] [stdout]     |
[INFO] [stdout]  76 | ...rts(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: b...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  76 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  76 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/repository_factory.rs:24:40
[INFO] [stdout]     |
[INFO] [stdout]  24 |     pub fn defaultRepos(io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, config: Option<crate::composer::conf...
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  24 -     pub fn defaultRepos(io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, config: Option<crate::composer::config::Config>, rm: Option<crate::composer::repository::repository_manager::RepositoryManager>) -> Vec<serde_json::Value> {
[INFO] [stdout]  24 +     pub fn defaultRepos(io: Option<Box<Self>>, config: Option<crate::composer::config::Config>, rm: Option<crate::composer::repository::repository_manager::RepositoryManager>) -> Vec<serde_json::Value> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/git_driver.rs:48:29
[INFO] [stdout]     |
[INFO] [stdout]  48 | ...rts(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: b...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  48 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  48 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/repository_factory.rs:28:28
[INFO] [stdout]     |
[INFO] [stdout]  28 |     pub fn manager(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, httpDown...
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  28 -     pub fn manager(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, httpDownloader: Option<crate::composer::util::http_downloader::HttpDownloader>, eventDispatcher: Option<crate::composer::event_dispatcher::event_dispatcher::EventDispatcher>, process: Option<crate::composer::util::process_executor::ProcessExecutor>) -> crate::composer::repository::repository_manager::RepositoryManager {
[INFO] [stdout]  28 +     pub fn manager(io: Box<Self>, config: crate::composer::config::Config, httpDownloader: Option<crate::composer::util::http_downloader::HttpDownloader>, eventDispatcher: Option<crate::composer::event_dispatcher::event_dispatcher::EventDispatcher>, process: Option<crate::composer::util::process_executor::ProcessExecutor>) -> crate::composer::repository::repository_manager::RepositoryManager {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/repository_factory.rs:32:51
[INFO] [stdout]     |
[INFO] [stdout]  32 |     pub fn defaultReposWithDefaultManager(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) -> Vec<serde_json::Value> {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  32 -     pub fn defaultReposWithDefaultManager(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) -> Vec<serde_json::Value> {
[INFO] [stdout]  32 +     pub fn defaultReposWithDefaultManager(io: Box<Self>) -> Vec<serde_json::Value> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/git_hub_driver.rs:64:29
[INFO] [stdout]     |
[INFO] [stdout]  64 | ...rts(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: b...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  64 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  64 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/repository_set.rs:55:103
[INFO] [stdout]     |
[INFO] [stdout]  55 | ...t::Request, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, eventDispatcher: Option<crate::composer::event_dispat...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  55 -     pub fn createPool(&self, request: crate::composer::dependency_resolver::request::Request, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, eventDispatcher: Option<crate::composer::event_dispatcher::event_dispatcher::EventDispatcher>, poolOptimizer: Option<crate::composer::dependency_resolver::pool_optimizer::PoolOptimizer>, ignoredTypes: Vec<serde_json::Value>, allowedTypes: Option<Vec<serde_json::Value>>, securityAdvisoryPoolFilter: Option<crate::composer::dependency_resolver::security_advisory_pool_filter::SecurityAdvisoryPoolFilter>) -> crate::composer::dependency_resolver::pool::Pool {
[INFO] [stdout]  55 +     pub fn createPool(&self, request: crate::composer::dependency_resolver::request::Request, io: Box<Self>, eventDispatcher: Option<crate::composer::event_dispatcher::event_dispatcher::EventDispatcher>, poolOptimizer: Option<crate::composer::dependency_resolver::pool_optimizer::PoolOptimizer>, ignoredTypes: Vec<serde_json::Value>, allowedTypes: Option<Vec<serde_json::Value>>, securityAdvisoryPoolFilter: Option<crate::composer::dependency_resolver::security_advisory_pool_filter::SecurityAdvisoryPoolFilter>) -> crate::composer::dependency_resolver::pool::Pool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/forgejo_driver.rs:52:29
[INFO] [stdout]     |
[INFO] [stdout]  52 |     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: St...
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  52 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  52 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/git_lab_driver.rs:98:29
[INFO] [stdout]     |
[INFO] [stdout]  98 | ...rts(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: b...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  98 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  98 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/hg_driver.rs:48:29
[INFO] [stdout]     |
[INFO] [stdout]  48 | ...rts(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: b...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  48 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  48 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/fossil_driver.rs:56:29
[INFO] [stdout]     |
[INFO] [stdout]  56 |     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: St...
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  56 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  56 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/perforce_driver.rs:60:29
[INFO] [stdout]     |
[INFO] [stdout]  60 | ...rts(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: b...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  60 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  60 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/git_bitbucket_driver.rs:76:29
[INFO] [stdout]     |
[INFO] [stdout]  76 |     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: St...
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  76 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  76 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/git_driver.rs:48:29
[INFO] [stdout]     |
[INFO] [stdout]  48 |     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: St...
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  48 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  48 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/svn_driver.rs:56:29
[INFO] [stdout]     |
[INFO] [stdout]  56 | ...rts(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: b...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  56 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  56 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/git_hub_driver.rs:64:29
[INFO] [stdout]     |
[INFO] [stdout]  64 |     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: St...
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  64 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  64 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/script/event.rs:16:32
[INFO] [stdout]     |
[INFO] [stdout]  16 |     pub fn getIO(&self) -> Box<dyn crate::composer::i_o::i_o_interface::IOInterface> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  16 -     pub fn getIO(&self) -> Box<dyn crate::composer::i_o::i_o_interface::IOInterface> {
[INFO] [stdout]  16 +     pub fn getIO(&self) -> Box<Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/git_lab_driver.rs:98:29
[INFO] [stdout]     |
[INFO] [stdout]  98 |     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: St...
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  98 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  98 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/self_update/versions.rs:18:62
[INFO] [stdout]     |
[INFO] [stdout]  18 |     pub fn setChannel(&self, channel: String, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>) {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  18 -     pub fn setChannel(&self, channel: String, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>) {
[INFO] [stdout]  18 +     pub fn setChannel(&self, channel: String, io: Option<Box<Self>>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/hg_driver.rs:48:29
[INFO] [stdout]     |
[INFO] [stdout]  48 |     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: St...
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  48 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  48 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/perforce_driver.rs:60:29
[INFO] [stdout]     |
[INFO] [stdout]  60 |     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: St...
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  60 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  60 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/util/error_handler.rs:16:36
[INFO] [stdout]     |
[INFO] [stdout]  16 |     pub fn register(io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>) {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  16 -     pub fn register(io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>) {
[INFO] [stdout]  16 +     pub fn register(io: Option<Box<Self>>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/svn_driver.rs:56:29
[INFO] [stdout]     |
[INFO] [stdout]  56 |     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: St...
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  56 -     pub fn supports(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]  56 +     pub fn supports(io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/util/git.rs:12:84
[INFO] [stdout]     |
[INFO] [stdout]  12 | ... Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  12 -     pub fn checkForRepoOwnershipError(output: String, path: String, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>) {
[INFO] [stdout]  12 +     pub fn checkForRepoOwnershipError(output: String, path: String, io: Option<Box<Self>>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/script/event.rs:16:32
[INFO] [stdout]     |
[INFO] [stdout]  16 |     pub fn getIO(&self) -> Box<dyn crate::composer::i_o::i_o_interface::IOInterface> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  16 -     pub fn getIO(&self) -> Box<dyn crate::composer::i_o::i_o_interface::IOInterface> {
[INFO] [stdout]  16 +     pub fn getIO(&self) -> Box<Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/self_update/versions.rs:18:62
[INFO] [stdout]     |
[INFO] [stdout]  18 |     pub fn setChannel(&self, channel: String, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>) {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  18 -     pub fn setChannel(&self, channel: String, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>) {
[INFO] [stdout]  18 +     pub fn setChannel(&self, channel: String, io: Option<Box<Self>>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/util/error_handler.rs:16:36
[INFO] [stdout]     |
[INFO] [stdout]  16 |     pub fn register(io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>) {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  16 -     pub fn register(io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>) {
[INFO] [stdout]  16 +     pub fn register(io: Option<Box<Self>>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/util/http_downloader.rs:70:35
[INFO] [stdout]     |
[INFO] [stdout]  70 |     pub fn outputWarnings(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, url: String, data: serde_json::Value) {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  70 -     pub fn outputWarnings(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, url: String, data: serde_json::Value) {
[INFO] [stdout]  70 +     pub fn outputWarnings(io: Box<Self>, url: String, data: serde_json::Value) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/util/git.rs:12:84
[INFO] [stdout]     |
[INFO] [stdout]  12 | ...ing, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>) {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  12 -     pub fn checkForRepoOwnershipError(output: String, path: String, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>) {
[INFO] [stdout]  12 +     pub fn checkForRepoOwnershipError(output: String, path: String, io: Option<Box<Self>>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/util/perforce.rs:12:153
[INFO] [stdout]     |
[INFO] [stdout]  12 | ...or, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) -> Self {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  12 -     pub fn create(repoConfig: serde_json::Value, port: String, path: String, process: crate::composer::util::process_executor::ProcessExecutor, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) -> Self {
[INFO] [stdout]  12 +     pub fn create(repoConfig: serde_json::Value, port: String, path: String, process: crate::composer::util::process_executor::ProcessExecutor, io: Box<Self>) -> Self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/util/http_downloader.rs:70:35
[INFO] [stdout]     |
[INFO] [stdout]  70 |     pub fn outputWarnings(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, url: String, data: serde_json::Value) {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  70 -     pub fn outputWarnings(io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, url: String, data: serde_json::Value) {
[INFO] [stdout]  70 +     pub fn outputWarnings(io: Box<Self>, url: String, data: serde_json::Value) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/util/perforce.rs:12:153
[INFO] [stdout]     |
[INFO] [stdout]  12 | ...ssExecutor, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) -> Self {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  12 -     pub fn create(repoConfig: serde_json::Value, port: String, path: String, process: crate::composer::util::process_executor::ProcessExecutor, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) -> Self {
[INFO] [stdout]  12 +     pub fn create(repoConfig: serde_json::Value, port: String, path: String, process: crate::composer::util::process_executor::ProcessExecutor, io: Box<Self>) -> Self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/package_discovery_trait.rs:8:56
[INFO] [stdout]     |
[INFO] [stdout]   8 | ...kage(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, input: serde_json::Value, name: String, platformRepo:...
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]   8 -     fn findBestVersionAndNameForPackage(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, input: serde_json::Value, name: String, platformRepo: Option<crate::composer::repository::platform_repository::PlatformRepository>, preferredStability: String, fixed: bool) -> Vec<serde_json::Value> { todo!() }
[INFO] [stdout]   8 +     fn findBestVersionAndNameForPackage(&self, io: Box<Self>, input: serde_json::Value, name: String, platformRepo: Option<crate::composer::repository::platform_repository::PlatformRepository>, preferredStability: String, fixed: bool) -> Vec<serde_json::Value> { todo!() }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/command/package_discovery_trait.rs:8:56
[INFO] [stdout]     |
[INFO] [stdout]   8 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, input: serde_json::Value, name: String, platformRepo: Option<...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]   8 -     fn findBestVersionAndNameForPackage(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, input: serde_json::Value, name: String, platformRepo: Option<crate::composer::repository::platform_repository::PlatformRepository>, preferredStability: String, fixed: bool) -> Vec<serde_json::Value> { todo!() }
[INFO] [stdout]   8 +     fn findBestVersionAndNameForPackage(&self, io: Box<Self>, input: serde_json::Value, name: String, platformRepo: Option<crate::composer::repository::platform_repository::PlatformRepository>, preferredStability: String, fixed: bool) -> Vec<serde_json::Value> { todo!() }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/plugin/plugin_interface.rs:4:79
[INFO] [stdout]     |
[INFO] [stdout]   4 |     fn activate(&self, composer: crate::composer::composer::Composer, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>);
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]   4 -     fn activate(&self, composer: crate::composer::composer::Composer, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>);
[INFO] [stdout]   4 +     fn activate(&self, composer: crate::composer::composer::Composer, io: Box<Self>);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/plugin/plugin_interface.rs:5:81
[INFO] [stdout]     |
[INFO] [stdout]   5 | ...::Composer, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>);
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]   5 -     fn deactivate(&self, composer: crate::composer::composer::Composer, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>);
[INFO] [stdout]   5 +     fn deactivate(&self, composer: crate::composer::composer::Composer, io: Box<Self>);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/plugin/plugin_interface.rs:6:80
[INFO] [stdout]     |
[INFO] [stdout]   6 |     fn uninstall(&self, composer: crate::composer::composer::Composer, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>);
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]   6 -     fn uninstall(&self, composer: crate::composer::composer::Composer, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>);
[INFO] [stdout]   6 +     fn uninstall(&self, composer: crate::composer::composer::Composer, io: Box<Self>);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/plugin/plugin_interface.rs:4:79
[INFO] [stdout]     |
[INFO] [stdout]   4 |     fn activate(&self, composer: crate::composer::composer::Composer, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>);
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]   4 -     fn activate(&self, composer: crate::composer::composer::Composer, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>);
[INFO] [stdout]   4 +     fn activate(&self, composer: crate::composer::composer::Composer, io: Box<Self>);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/vcs_driver_interface.rs:16:32
[INFO] [stdout]     |
[INFO] [stdout]  16 |     fn supports(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url:...
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  16 -     fn supports(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool;
[INFO] [stdout]  16 +     fn supports(&self, io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/plugin/plugin_interface.rs:5:81
[INFO] [stdout]     |
[INFO] [stdout]   5 | ...er, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]   5 -     fn deactivate(&self, composer: crate::composer::composer::Composer, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>);
[INFO] [stdout]   5 +     fn deactivate(&self, composer: crate::composer::composer::Composer, io: Box<Self>);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/plugin/plugin_interface.rs:6:80
[INFO] [stdout]     |
[INFO] [stdout]   6 |     fn uninstall(&self, composer: crate::composer::composer::Composer, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>);
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]   6 -     fn uninstall(&self, composer: crate::composer::composer::Composer, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>);
[INFO] [stdout]   6 +     fn uninstall(&self, composer: crate::composer::composer::Composer, io: Box<Self>);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]    --> src/composer/repository/vcs/vcs_driver_interface.rs:16:32
[INFO] [stdout]     |
[INFO] [stdout]  16 | ...lf, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: b...
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `i_o_interface::IOInterface` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/composer/i_o/i_o_interface.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub trait IOInterface: Send + Sync {
[INFO] [stdout]     |           ----------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn ask_and_validate<F>(&self, question: &str, validator: F, attempts: Option<u32>, default: Option<&str>) -> Option<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `ask_and_validate` has generic type parameters
[INFO] [stdout]     = help: consider moving `ask_and_validate` to another trait
[INFO] [stdout]     = help: the following types implement `i_o_interface::IOInterface`:
[INFO] [stdout]               composer::i_o::buffer_i_o::BufferIO
[INFO] [stdout]               composer::i_o::console_i_o::ConsoleIO
[INFO] [stdout]               composer::i_o::null_i_o::NullIO
[INFO] [stdout]             consider defining an enum where each variant holds one of these types,
[INFO] [stdout]             implementing `i_o_interface::IOInterface` for this new enum and using it instead
[INFO] [stdout]     = note: `i_o_interface::IOInterface` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  16 -     fn supports(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Config, url: String, deep: bool) -> bool;
[INFO] [stdout]  16 +     fn supports(&self, io: Box<Self>, config: crate::composer::config::Config, url: String, deep: bool) -> bool;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/advisory/audit_config.rs:12:29
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn parseIgnoreWithApply(config: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/advisory/audit_config.rs:16:23
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn fromConfig(config: crate::composer::config::Config, audit: bool, auditFormat: String) -> Self {
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `audit`
[INFO] [stdout]   --> src/composer/advisory/audit_config.rs:16:64
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn fromConfig(config: crate::composer::config::Config, audit: bool, auditFormat: String) -> Self {
[INFO] [stdout]    |                                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_audit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `auditFormat`
[INFO] [stdout]   --> src/composer/advisory/audit_config.rs:16:77
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn fromConfig(config: crate::composer::config::Config, audit: bool, auditFormat: String) -> Self {
[INFO] [stdout]    |                                                                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auditFormat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn audit(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, repoSet: crate::composer::repository::reposit...
[INFO] [stdout]    |                         ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repoSet`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:25:88
[INFO] [stdout]    |
[INFO] [stdout] 25 | ...interface::IOInterface>, repoSet: crate::composer::repository::repository_set::RepositorySet, packages: Vec<serde_json::Value>, f...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repoSet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packages`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:25:157
[INFO] [stdout]    |
[INFO] [stdout] 25 | ...ory_set::RepositorySet, packages: Vec<serde_json::Value>, format: String, warningOnly: bool, ignoreList: Vec<serde_json::Value>, ...
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:25:191
[INFO] [stdout]    |
[INFO] [stdout] 25 | ...: Vec<serde_json::Value>, format: String, warningOnly: bool, ignoreList: Vec<serde_json::Value>, abandoned: String, ignoredSeveri...
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_format`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `warningOnly`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:25:207
[INFO] [stdout]    |
[INFO] [stdout] 25 | ...ue>, format: String, warningOnly: bool, ignoreList: Vec<serde_json::Value>, abandoned: String, ignoredSeverities: Vec<serde_json:...
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_warningOnly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignoreList`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:25:226
[INFO] [stdout]    |
[INFO] [stdout] 25 | ...g, warningOnly: bool, ignoreList: Vec<serde_json::Value>, abandoned: String, ignoredSeverities: Vec<serde_json::Value>, ignoreUnr...
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignoreList`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `abandoned`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:25:262
[INFO] [stdout]    |
[INFO] [stdout] 25 | ...ec<serde_json::Value>, abandoned: String, ignoredSeverities: Vec<serde_json::Value>, ignoreUnreachable: bool, ignoreAbandoned: Ve...
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_abandoned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignoredSeverities`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:25:281
[INFO] [stdout]    |
[INFO] [stdout] 25 | ...doned: String, ignoredSeverities: Vec<serde_json::Value>, ignoreUnreachable: bool, ignoreAbandoned: Vec<serde_json::Value>) -> i64 {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignoredSeverities`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignoreUnreachable`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:25:324
[INFO] [stdout]    |
[INFO] [stdout] 25 | ..._json::Value>, ignoreUnreachable: bool, ignoreAbandoned: Vec<serde_json::Value>) -> i64 {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignoreUnreachable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignoreAbandoned`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:25:349
[INFO] [stdout]    |
[INFO] [stdout] 25 | ...reachable: bool, ignoreAbandoned: Vec<serde_json::Value>) -> i64 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignoreAbandoned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `advisories`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:29:45
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn needsCompleteAdvisoryLoad(&self, advisories: Vec<serde_json::Value>, ignoreList: Vec<serde_json::Value>) -> bool {
[INFO] [stdout]    |                                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_advisories`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignoreList`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:29:81
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn needsCompleteAdvisoryLoad(&self, advisories: Vec<serde_json::Value>, ignoreList: Vec<serde_json::Value>) -> bool {
[INFO] [stdout]    |                                                                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignoreList`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packages`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:33:43
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn filterAbandonedPackages(&self, packages: Vec<serde_json::Value>, ignoreAbandoned: Vec<serde_json::Value>) -> Vec<serde_js...
[INFO] [stdout]    |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignoreAbandoned`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:33:77
[INFO] [stdout]    |
[INFO] [stdout] 33 | ...de_json::Value>, ignoreAbandoned: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignoreAbandoned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `allAdvisories`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:37:37
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn processAdvisories(&self, allAdvisories: Vec<serde_json::Value>, ignoreList: Vec<serde_json::Value>, ignoredSeverities: Ve...
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allAdvisories`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignoreList`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:37:76
[INFO] [stdout]    |
[INFO] [stdout] 37 | ...c<serde_json::Value>, ignoreList: Vec<serde_json::Value>, ignoredSeverities: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignoreList`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignoredSeverities`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:37:112
[INFO] [stdout]    |
[INFO] [stdout] 37 | ..._json::Value>, ignoredSeverities: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignoredSeverities`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `advisories`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:41:31
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn countAdvisories(&self, advisories: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_advisories`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:45:32
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn outputAdvisories(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, advisories: Vec<serde_json::Value>, fo...
[INFO] [stdout]    |                                ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `advisories`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:45:95
[INFO] [stdout]    |
[INFO] [stdout] 45 | ...erface::IOInterface>, advisories: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_advisories`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:45:131
[INFO] [stdout]    |
[INFO] [stdout] 45 | ...: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_format`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:49:37
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn outputAdvisoriesTable(&self, io: crate::composer::i_o::console_i_o::ConsoleIO, advisories: Vec<serde_json::Value>) {
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `advisories`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:49:87
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn outputAdvisoriesTable(&self, io: crate::composer::i_o::console_i_o::ConsoleIO, advisories: Vec<serde_json::Value>) {
[INFO] [stdout]    |                                                                                       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_advisories`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:53:37
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn outputAdvisoriesPlain(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, advisories: Vec<serde_json::Value...
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `advisories`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:53:100
[INFO] [stdout]    |
[INFO] [stdout] 53 | ...erface::IOInterface>, advisories: Vec<serde_json::Value>) {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_advisories`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:57:39
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn outputAbandonedPackages(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, packages: Vec<serde_json::Value...
[INFO] [stdout]    |                                       ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packages`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:57:102
[INFO] [stdout]    |
[INFO] [stdout] 57 | ...nterface::IOInterface>, packages: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:57:136
[INFO] [stdout]    |
[INFO] [stdout] 57 | ...: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_format`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:61:38
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn getPackageNameWithLink(&self, package: Box<dyn crate::composer::package::package_interface::PackageInterface>) -> String {
[INFO] [stdout]    |                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `advisory`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:65:27
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn getSeverity(&self, advisory: crate::composer::advisory::security_advisory::SecurityAdvisory) -> String {
[INFO] [stdout]    |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_advisory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `advisory`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:69:29
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn getAdvisoryId(&self, advisory: crate::composer::advisory::security_advisory::SecurityAdvisory) -> String {
[INFO] [stdout]    |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_advisory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `advisory`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:73:22
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn getCVE(&self, advisory: crate::composer::advisory::security_advisory::SecurityAdvisory) -> String {
[INFO] [stdout]    |                      ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_advisory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `advisory`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:77:22
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn getURL(&self, advisory: crate::composer::advisory::security_advisory::SecurityAdvisory) -> String {
[INFO] [stdout]    |                      ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_advisory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hasVulnerablePackages`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:81:32
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn calculateBitmask(&self, hasVulnerablePackages: bool, hasAbandonedPackages: bool) -> i64 {
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hasVulnerablePackages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hasAbandonedPackages`
[INFO] [stdout]   --> src/composer/advisory/auditor.rs:81:61
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn calculateBitmask(&self, hasVulnerablePackages: bool, hasAbandonedPackages: bool) -> i64 {
[INFO] [stdout]    |                                                             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hasAbandonedPackages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageName`
[INFO] [stdout]   --> src/composer/advisory/partial_security_advisory.rs:12:19
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn create(packageName: String, data: Vec<serde_json::Value>, parser: crate::composer::package::version::version_parser::Vers...
[INFO] [stdout]    |                   ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/composer/advisory/partial_security_advisory.rs:12:40
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn create(packageName: String, data: Vec<serde_json::Value>, parser: crate::composer::package::version::version_parser::Vers...
[INFO] [stdout]    |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parser`
[INFO] [stdout]   --> src/composer/advisory/partial_security_advisory.rs:12:70
[INFO] [stdout]    |
[INFO] [stdout] 12 | ...: Vec<serde_json::Value>, parser: crate::composer::package::version::version_parser::VersionParser) -> Self {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parser`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignoreReason`
[INFO] [stdout]   --> src/composer/advisory/security_advisory.rs:12:37
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn toIgnoredAdvisory(&self, ignoreReason: Option<String>) -> crate::composer::advisory::ignored_security_advisory::IgnoredSe...
[INFO] [stdout]    |                                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignoreReason`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `devMode`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:12:30
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn setDevMode(&self, devMode: bool) {
[INFO] [stdout]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_devMode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `classMapAuthoritative`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:16:44
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn setClassMapAuthoritative(&self, classMapAuthoritative: bool) {
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_classMapAuthoritative`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `apcu`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:20:27
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn setApcu(&self, apcu: bool, apcuPrefix: Option<String>) {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_apcu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `apcuPrefix`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:20:39
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn setApcu(&self, apcu: bool, apcuPrefix: Option<String>) {
[INFO] [stdout]    |                                       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_apcuPrefix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `runScripts`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:24:33
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn setRunScripts(&self, runScripts: bool) {
[INFO] [stdout]    |                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_runScripts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dryRun`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:28:29
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn setDryRun(&self, dryRun: bool) {
[INFO] [stdout]    |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_dryRun`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignorePlatformReqs`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:32:49
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn setIgnorePlatformRequirements(&self, ignorePlatformReqs: serde_json::Value) {
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignorePlatformReqs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platformRequirementFilter`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:36:48
[INFO] [stdout]    |
[INFO] [stdout] 36 | ...&self, platformRequirementFilter: Box<dyn crate::composer::filter::platform_requirement_filter::platform_requirement_filter_inter...
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platformRequirementFilter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:40:24
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn dump(&self, config: crate::composer::config::Config, localRepo: Box<dyn crate::composer::repository::installed_repository...
[INFO] [stdout]    |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `localRepo`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:40:65
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...poser::config::Config, localRepo: Box<dyn crate::composer::repository::installed_repository_interface::InstalledRepositoryInterfa...
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_localRepo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rootPackage`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:40:176
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...epositoryInterface>, rootPackage: Box<dyn crate::composer::package::root_package_interface::RootPackageInterface>, installationMa...
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rootPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `installationManager`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:40:270
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...eInterface>, installationManager: crate::composer::installer::installation_manager::InstallationManager, targetDir: String, scanP...
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_installationManager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targetDir`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:40:362
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...::InstallationManager, targetDir: String, scanPsrPackages: bool, suffix: Option<String>, locker: Option<crate::composer::package:...
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_targetDir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scanPsrPackages`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:40:381
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...rgetDir: String, scanPsrPackages: bool, suffix: Option<String>, locker: Option<crate::composer::package::locker::Locker>, strictA...
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scanPsrPackages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:40:404
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...g, scanPsrPackages: bool, suffix: Option<String>, locker: Option<crate::composer::package::locker::Locker>, strictAmbiguous: bool) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locker`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:40:428
[INFO] [stdout]    |
[INFO] [stdout] 40 | ..., suffix: Option<String>, locker: Option<crate::composer::package::locker::Locker>, strictAmbiguous: bool) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_locker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strictAmbiguous`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:40:486
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...locker::Locker>, strictAmbiguous: bool) {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strictAmbiguous`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:44:35
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn buildExclusionRegex(&self, dir: String, excluded: Vec<serde_json::Value>) -> Option<String> {
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `excluded`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:44:48
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn buildExclusionRegex(&self, dir: String, excluded: Vec<serde_json::Value>) -> Option<String> {
[INFO] [stdout]    |                                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_excluded`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `installationManager`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:48:35
[INFO] [stdout]    |
[INFO] [stdout] 48 | ...geMap(&self, installationManager: crate::composer::installer::installation_manager::InstallationManager, rootPackage: Box<dyn cra...
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_installationManager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rootPackage`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:48:127
[INFO] [stdout]    |
[INFO] [stdout] 48 | ...InstallationManager, rootPackage: Box<dyn crate::composer::package::package_interface::PackageInterface>, packages: Vec<serde_jso...
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rootPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packages`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:48:212
[INFO] [stdout]    |
[INFO] [stdout] 48 | ...ace::PackageInterface>, packages: Vec<serde_json::Value>) {
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:52:42
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub(crate) fn validatePackage(&self, package: Box<dyn crate::composer::package::package_interface::PackageInterface>) {
[INFO] [stdout]    |                                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageMap`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:56:34
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn parseAutoloads(&self, packageMap: Vec<serde_json::Value>, rootPackage: Box<dyn crate::composer::package::package_interfac...
[INFO] [stdout]    |                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageMap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rootPackage`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:56:70
[INFO] [stdout]    |
[INFO] [stdout] 56 | ...<serde_json::Value>, rootPackage: Box<dyn crate::composer::package::package_interface::PackageInterface>, filteredDevPackages: se...
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rootPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filteredDevPackages`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:56:155
[INFO] [stdout]    |
[INFO] [stdout] 56 | ...eInterface>, filteredDevPackages: serde_json::Value) {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filteredDevPackages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `autoloads`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:60:32
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub fn createLoader(&self, autoloads: Vec<serde_json::Value>, vendorDir: Option<String>) {
[INFO] [stdout]    |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_autoloads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vendorDir`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:60:67
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub fn createLoader(&self, autoloads: Vec<serde_json::Value>, vendorDir: Option<String>) {
[INFO] [stdout]    |                                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vendorDir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageMap`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:76:43
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub(crate) fn getPlatformCheck(&self, packageMap: Vec<serde_json::Value>, checkPlatform: serde_json::Value, devPackageNames: Vec...
[INFO] [stdout]    |                                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageMap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `checkPlatform`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:76:79
[INFO] [stdout]    |
[INFO] [stdout] 76 | ...erde_json::Value>, checkPlatform: serde_json::Value, devPackageNames: Vec<serde_json::Value>) {
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_checkPlatform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `devPackageNames`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:76:113
[INFO] [stdout]    |
[INFO] [stdout] 76 | ...rde_json::Value, devPackageNames: Vec<serde_json::Value>) {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_devPackageNames`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vendorPathToTargetDirCode`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:80:42
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub(crate) fn getAutoloadFile(&self, vendorPathToTargetDirCode: String, suffix: String) {
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vendorPathToTargetDirCode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:80:77
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub(crate) fn getAutoloadFile(&self, vendorPathToTargetDirCode: String, suffix: String) {
[INFO] [stdout]    |                                                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `useClassMap`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:84:46
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...oloadRealFile(&self, useClassMap: bool, useIncludePath: bool, targetDirLoader: Option<String>, useIncludeFiles: bool, vendorPathC...
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_useClassMap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `useIncludePath`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:84:65
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...seClassMap: bool, useIncludePath: bool, targetDirLoader: Option<String>, useIncludeFiles: bool, vendorPathCode: String, appBaseDi...
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_useIncludePath`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targetDirLoader`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:84:87
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...cludePath: bool, targetDirLoader: Option<String>, useIncludeFiles: bool, vendorPathCode: String, appBaseDirCode: String, suffix: ...
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_targetDirLoader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `useIncludeFiles`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:84:120
[INFO] [stdout]    |
[INFO] [stdout] 84 | ... Option<String>, useIncludeFiles: bool, vendorPathCode: String, appBaseDirCode: String, suffix: String, useGlobalIncludePath: boo...
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_useIncludeFiles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vendorPathCode`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:84:143
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...cludeFiles: bool, vendorPathCode: String, appBaseDirCode: String, suffix: String, useGlobalIncludePath: bool, prependAutoloader: ...
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vendorPathCode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `appBaseDirCode`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:84:167
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...PathCode: String, appBaseDirCode: String, suffix: String, useGlobalIncludePath: bool, prependAutoloader: String, checkPlatform: b...
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_appBaseDirCode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:84:191
[INFO] [stdout]    |
[INFO] [stdout] 84 | ..., appBaseDirCode: String, suffix: String, useGlobalIncludePath: bool, prependAutoloader: String, checkPlatform: bool) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `useGlobalIncludePath`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:84:207
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...ix: String, useGlobalIncludePath: bool, prependAutoloader: String, checkPlatform: bool) {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_useGlobalIncludePath`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prependAutoloader`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:84:235
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...udePath: bool, prependAutoloader: String, checkPlatform: bool) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prependAutoloader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `checkPlatform`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:84:262
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...utoloader: String, checkPlatform: bool) {
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_checkPlatform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:88:40
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub(crate) fn getStaticFile(&self, suffix: String, targetDir: String, vendorPath: String, basePath: String) {
[INFO] [stdout]    |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targetDir`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:88:56
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub(crate) fn getStaticFile(&self, suffix: String, targetDir: String, vendorPath: String, basePath: String) {
[INFO] [stdout]    |                                                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_targetDir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vendorPath`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:88:75
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub(crate) fn getStaticFile(&self, suffix: String, targetDir: String, vendorPath: String, basePath: String) {
[INFO] [stdout]    |                                                                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vendorPath`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `basePath`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:88:95
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub(crate) fn getStaticFile(&self, suffix: String, targetDir: String, vendorPath: String, basePath: String) {
[INFO] [stdout]    |                                                                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_basePath`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageMap`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:92:45
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub(crate) fn parseAutoloadsType(&self, packageMap: Vec<serde_json::Value>, r#type: String, rootPackage: Box<dyn crate::composer...
[INFO] [stdout]    |                                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageMap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r#type`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:92:81
[INFO] [stdout]    |
[INFO] [stdout] 92 | ...p: Vec<serde_json::Value>, r#type: String, rootPackage: Box<dyn crate::composer::package::root_package_interface::RootPackageInte...
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rootPackage`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:92:97
[INFO] [stdout]    |
[INFO] [stdout] 92 | ...ue>, r#type: String, rootPackage: Box<dyn crate::composer::package::root_package_interface::RootPackageInterface>) {
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rootPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:96:44
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub(crate) fn getFileIdentifier(&self, package: Box<dyn crate::composer::package::package_interface::PackageInterface>, path: St...
[INFO] [stdout]    |                                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/composer/autoload/autoload_generator.rs:96:125
[INFO] [stdout]    |
[INFO] [stdout] 96 | ...terface::PackageInterface>, path: String) {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageMap`
[INFO] [stdout]    --> src/composer/autoload/autoload_generator.rs:100:43
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub(crate) fn filterPackageMap(&self, packageMap: Vec<serde_json::Value>, rootPackage: Box<dyn crate::composer::package::root_p...
[INFO] [stdout]     |                                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageMap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rootPackage`
[INFO] [stdout]    --> src/composer/autoload/autoload_generator.rs:100:79
[INFO] [stdout]     |
[INFO] [stdout] 100 | ...<serde_json::Value>, rootPackage: Box<dyn crate::composer::package::root_package_interface::RootPackageInterface>) {
[INFO] [stdout]     |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rootPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageMap`
[INFO] [stdout]    --> src/composer/autoload/autoload_generator.rs:104:41
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub(crate) fn sortPackageMap(&self, packageMap: Vec<serde_json::Value>) {
[INFO] [stdout]     |                                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageMap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fileIdentifier`
[INFO] [stdout]    --> src/composer/autoload/autoload_generator.rs:110:24
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn composerRequire(fileIdentifier: String, file: String) {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fileIdentifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> src/composer/autoload/autoload_generator.rs:110:48
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn composerRequire(fileIdentifier: String, file: String) {
[INFO] [stdout]     |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `classMap`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:32:31
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn addClassMap(&self, classMap: Vec<serde_json::Value>) {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_classMap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefix`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:36:23
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn add(&self, prefix: serde_json::Value, paths: serde_json::Value, prepend: serde_json::Value) {
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `paths`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:36:50
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn add(&self, prefix: serde_json::Value, paths: serde_json::Value, prepend: serde_json::Value) {
[INFO] [stdout]    |                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_paths`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prepend`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:36:76
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn add(&self, prefix: serde_json::Value, paths: serde_json::Value, prepend: serde_json::Value) {
[INFO] [stdout]    |                                                                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prepend`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefix`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn addPsr4(&self, prefix: serde_json::Value, paths: serde_json::Value, prepend: serde_json::Value) {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `paths`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:40:54
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn addPsr4(&self, prefix: serde_json::Value, paths: serde_json::Value, prepend: serde_json::Value) {
[INFO] [stdout]    |                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_paths`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prepend`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:40:80
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn addPsr4(&self, prefix: serde_json::Value, paths: serde_json::Value, prepend: serde_json::Value) {
[INFO] [stdout]    |                                                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prepend`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefix`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:44:23
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn set(&self, prefix: serde_json::Value, paths: serde_json::Value) {
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `paths`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:44:50
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn set(&self, prefix: serde_json::Value, paths: serde_json::Value) {
[INFO] [stdout]    |                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_paths`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefix`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn setPsr4(&self, prefix: serde_json::Value, paths: serde_json::Value) {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `paths`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:48:54
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn setPsr4(&self, prefix: serde_json::Value, paths: serde_json::Value) {
[INFO] [stdout]    |                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_paths`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `useIncludePath`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:52:37
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn setUseIncludePath(&self, useIncludePath: serde_json::Value) {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_useIncludePath`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `classMapAuthoritative`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:60:44
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub fn setClassMapAuthoritative(&self, classMapAuthoritative: serde_json::Value) {
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_classMapAuthoritative`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `apcuPrefix`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:68:33
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn setApcuPrefix(&self, apcuPrefix: serde_json::Value) {
[INFO] [stdout]    |                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_apcuPrefix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prepend`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:76:28
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn register(&self, prepend: serde_json::Value) {
[INFO] [stdout]    |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prepend`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:84:29
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn loadClass(&self, class: serde_json::Value) {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:88:28
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn findFile(&self, class: serde_json::Value) {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:96:37
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn findFileWithExtension(&self, class: serde_json::Value, ext: serde_json::Value) {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ext`
[INFO] [stdout]   --> src/composer/autoload/class_loader.rs:96:63
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn findFileWithExtension(&self, class: serde_json::Value, ext: serde_json::Value) {
[INFO] [stdout]    |                                                               ^^^ help: if this is intentional, prefix it with an underscore: `_ext`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dirs`
[INFO] [stdout]   --> src/composer/autoload/class_map_generator.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn dump(dirs: Vec<serde_json::Value>, file: String) {
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_dirs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/composer/autoload/class_map_generator.rs:12:47
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn dump(dirs: Vec<serde_json::Value>, file: String) {
[INFO] [stdout]    |                                               ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/composer/autoload/class_map_generator.rs:16:22
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn createMap(path: serde_json::Value, excluded: Option<String>, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOIn...
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `excluded`
[INFO] [stdout]   --> src/composer/autoload/class_map_generator.rs:16:47
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn createMap(path: serde_json::Value, excluded: Option<String>, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOIn...
[INFO] [stdout]    |                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_excluded`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/autoload/class_map_generator.rs:16:73
[INFO] [stdout]    |
[INFO] [stdout] 16 | ...ue, excluded: Option<String>, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, namespace: Option<String>, a...
[INFO] [stdout]    |                                  ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `namespace`
[INFO] [stdout]   --> src/composer/autoload/class_map_generator.rs:16:144
[INFO] [stdout]    |
[INFO] [stdout] 16 | ...erface::IOInterface>>, namespace: Option<String>, autoloadType: Option<String>, scannedFiles: Vec<serde_json::Value>) -> Vec<serd...
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_namespace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `autoloadType`
[INFO] [stdout]   --> src/composer/autoload/class_map_generator.rs:16:171
[INFO] [stdout]    |
[INFO] [stdout] 16 | ...ce: Option<String>, autoloadType: Option<String>, scannedFiles: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_autoloadType`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scannedFiles`
[INFO] [stdout]   --> src/composer/autoload/class_map_generator.rs:16:201
[INFO] [stdout]    |
[INFO] [stdout] 16 | ...pe: Option<String>, scannedFiles: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scannedFiles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `readOnly`
[INFO] [stdout]   --> src/composer/cache.rs:12:31
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn setReadOnly(&self, readOnly: bool) {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_readOnly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/composer/cache.rs:20:21
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn isUsable(path: String) {
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/composer/cache.rs:32:24
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn read(&self, file: String) {
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/composer/cache.rs:36:25
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn write(&self, file: String, contents: String) {
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contents`
[INFO] [stdout]   --> src/composer/cache.rs:36:39
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn write(&self, file: String, contents: String) {
[INFO] [stdout]    |                                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contents`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/composer/cache.rs:40:28
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn copyFrom(&self, file: String, source: String) {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]   --> src/composer/cache.rs:40:42
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn copyFrom(&self, file: String, source: String) {
[INFO] [stdout]    |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/composer/cache.rs:44:26
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn copyTo(&self, file: String, target: String) {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/composer/cache.rs:44:40
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn copyTo(&self, file: String, target: String) {
[INFO] [stdout]    |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/composer/cache.rs:52:26
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn remove(&self, file: String) {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/composer/cache.rs:60:26
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub fn getAge(&self, file: String) {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ttl`
[INFO] [stdout]   --> src/composer/cache.rs:64:22
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn gc(&self, ttl: i64, maxSize: i64) {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_ttl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maxSize`
[INFO] [stdout]   --> src/composer/cache.rs:64:32
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn gc(&self, ttl: i64, maxSize: i64) {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maxSize`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ttl`
[INFO] [stdout]   --> src/composer/cache.rs:68:30
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn gcVcsCache(&self, ttl: i64) -> bool {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_ttl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/composer/cache.rs:72:24
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub fn sha1(&self, file: String) {
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/composer/cache.rs:76:26
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn sha256(&self, file: String) {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/about_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/about_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/archive_command.rs:18:34
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/archive_command.rs:18:60
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/command/archive_command.rs:22:34
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub(crate) fn archive(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Con...
[INFO] [stdout]    |                                  ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/command/archive_command.rs:22:97
[INFO] [stdout]    |
[INFO] [stdout] 22 | ..._interface::IOInterface>, config: crate::composer::config::Config, packageName: Option<String>, version: Option<String>, format: ...
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageName`
[INFO] [stdout]   --> src/composer/command/archive_command.rs:22:138
[INFO] [stdout]    |
[INFO] [stdout] 22 | ...ser::config::Config, packageName: Option<String>, version: Option<String>, format: String, dest: String, fileName: Option<String>...
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]   --> src/composer/command/archive_command.rs:22:167
[INFO] [stdout]    |
[INFO] [stdout] 22 | ...ageName: Option<String>, version: Option<String>, format: String, dest: String, fileName: Option<String>, ignoreFilters: bool, co...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]   --> src/composer/command/archive_command.rs:22:192
[INFO] [stdout]    |
[INFO] [stdout] 22 | ... version: Option<String>, format: String, dest: String, fileName: Option<String>, ignoreFilters: bool, composer: Option<crate::co...
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_format`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest`
[INFO] [stdout]   --> src/composer/command/archive_command.rs:22:208
[INFO] [stdout]    |
[INFO] [stdout] 22 | ...on<String>, format: String, dest: String, fileName: Option<String>, ignoreFilters: bool, composer: Option<crate::composer::compos...
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_dest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fileName`
[INFO] [stdout]   --> src/composer/command/archive_command.rs:22:222
[INFO] [stdout]    |
[INFO] [stdout] 22 | ...: String, dest: String, fileName: Option<String>, ignoreFilters: bool, composer: Option<crate::composer::composer::Composer>) -> ...
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fileName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignoreFilters`
[INFO] [stdout]   --> src/composer/command/archive_command.rs:22:248
[INFO] [stdout]    |
[INFO] [stdout] 22 | ...e: Option<String>, ignoreFilters: bool, composer: Option<crate::composer::composer::Composer>) -> i64 {
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignoreFilters`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `composer`
[INFO] [stdout]   --> src/composer/command/archive_command.rs:22:269
[INFO] [stdout]    |
[INFO] [stdout] 22 | ...>, ignoreFilters: bool, composer: Option<crate::composer::composer::Composer>) -> i64 {
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_composer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/command/archive_command.rs:26:40
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub(crate) fn selectPackage(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, packageName: String, version: ...
[INFO] [stdout]    |                                        ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageName`
[INFO] [stdout]   --> src/composer/command/archive_command.rs:26:103
[INFO] [stdout]    |
[INFO] [stdout] 26 | ...rface::IOInterface>, packageName: String, version: Option<String>) {
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]   --> src/composer/command/archive_command.rs:26:124
[INFO] [stdout]    |
[INFO] [stdout] 26 | ...e>, packageName: String, version: Option<String>) {
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/audit_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/audit_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `composer`
[INFO] [stdout]   --> src/composer/command/audit_command.rs:20:27
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn getPackages(&self, composer: crate::composer::composer::Composer, input: serde_json::Value) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_composer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/audit_command.rs:20:74
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn getPackages(&self, composer: crate::composer::composer::Composer, input: serde_json::Value) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `required`
[INFO] [stdout]   --> src/composer/command/base_command.rs:16:31
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn getComposer(&self, required: bool, disablePlugins: Option<bool>, disableScripts: Option<bool>) {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_required`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `disablePlugins`
[INFO] [stdout]   --> src/composer/command/base_command.rs:16:47
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn getComposer(&self, required: bool, disablePlugins: Option<bool>, disableScripts: Option<bool>) {
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_disablePlugins`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `disableScripts`
[INFO] [stdout]   --> src/composer/command/base_command.rs:16:77
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn getComposer(&self, required: bool, disablePlugins: Option<bool>, disableScripts: Option<bool>) {
[INFO] [stdout]    |                                                                             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_disableScripts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `disablePlugins`
[INFO] [stdout]   --> src/composer/command/base_command.rs:20:35
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn requireComposer(&self, disablePlugins: Option<bool>, disableScripts: Option<bool>) -> crate::composer::composer::Composer {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_disablePlugins`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `disableScripts`
[INFO] [stdout]   --> src/composer/command/base_command.rs:20:65
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn requireComposer(&self, disablePlugins: Option<bool>, disableScripts: Option<bool>) -> crate::composer::composer::Composer {
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_disableScripts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `disablePlugins`
[INFO] [stdout]   --> src/composer/command/base_command.rs:24:31
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn tryComposer(&self, disablePlugins: Option<bool>, disableScripts: Option<bool>) -> Option<crate::composer::composer::Compo...
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_disablePlugins`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `disableScripts`
[INFO] [stdout]   --> src/composer/command/base_command.rs:24:61
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...ns: Option<bool>, disableScripts: Option<bool>) -> Option<crate::composer::composer::Composer> {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_disableScripts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `composer`
[INFO] [stdout]   --> src/composer/command/base_command.rs:28:31
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn setComposer(&self, composer: crate::composer::composer::Composer) {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_composer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/command/base_command.rs:44:25
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn setIO(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>) {
[INFO] [stdout]    |                         ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/base_command.rs:48:28
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn complete(&self, input: serde_json::Value, suggestions: serde_json::Value) {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suggestions`
[INFO] [stdout]   --> src/composer/command/base_command.rs:48:54
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn complete(&self, input: serde_json::Value, suggestions: serde_json::Value) {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_suggestions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/base_command.rs:52:37
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub(crate) fn initialize(&self, input: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/base_command.rs:52:63
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub(crate) fn initialize(&self, input: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/base_command.rs:56:49
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub(crate) fn createComposerInstance(&self, input: serde_json::Value, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterfa...
[INFO] [stdout]    |                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/command/base_command.rs:56:75
[INFO] [stdout]    |
[INFO] [stdout] 56 | ...lf, input: serde_json::Value, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: serde_json::Value, disablePl...
[INFO] [stdout]    |                                  ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/command/base_command.rs:56:138
[INFO] [stdout]    |
[INFO] [stdout] 56 | ..._interface::IOInterface>, config: serde_json::Value, disablePlugins: Option<bool>, disableScripts: Option<bool>) -> crate::compos...
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `disablePlugins`
[INFO] [stdout]   --> src/composer/command/base_command.rs:56:165
[INFO] [stdout]    |
[INFO] [stdout] 56 | ...erde_json::Value, disablePlugins: Option<bool>, disableScripts: Option<bool>) -> crate::composer::composer::Composer {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_disablePlugins`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `disableScripts`
[INFO] [stdout]   --> src/composer/command/base_command.rs:56:195
[INFO] [stdout]    |
[INFO] [stdout] 56 | ...ns: Option<bool>, disableScripts: Option<bool>) -> crate::composer::composer::Composer {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_disableScripts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/command/base_command.rs:60:53
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub(crate) fn getPreferredInstallOptions(&self, config: crate::composer::config::Config, input: serde_json::Value, keepVcsRequir...
[INFO] [stdout]    |                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/base_command.rs:60:94
[INFO] [stdout]    |
[INFO] [stdout] 60 | ...:composer::config::Config, input: serde_json::Value, keepVcsRequiresPreferSource: bool) {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keepVcsRequiresPreferSource`
[INFO] [stdout]   --> src/composer/command/base_command.rs:60:120
[INFO] [stdout]    |
[INFO] [stdout] 60 | ...lue, keepVcsRequiresPreferSource: bool) {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keepVcsRequiresPreferSource`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/base_command.rs:64:55
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub(crate) fn getPlatformRequirementFilter(&self, input: serde_json::Value) -> Box<dyn crate::composer::filter::platform_require...
[INFO] [stdout]    |                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requirements`
[INFO] [stdout]   --> src/composer/command/base_command.rs:68:45
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub(crate) fn formatRequirements(&self, requirements: Vec<serde_json::Value>) {
[INFO] [stdout]    |                                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requirements`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requirements`
[INFO] [stdout]   --> src/composer/command/base_command.rs:72:48
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub(crate) fn normalizeRequirements(&self, requirements: Vec<serde_json::Value>) {
[INFO] [stdout]    |                                                ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requirements`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]   --> src/composer/command/base_command.rs:76:38
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub(crate) fn renderTable(&self, table: Vec<serde_json::Value>, output: serde_json::Value) {
[INFO] [stdout]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/base_command.rs:76:69
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub(crate) fn renderTable(&self, table: Vec<serde_json::Value>, output: serde_json::Value) {
[INFO] [stdout]    |                                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/base_command.rs:84:41
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub(crate) fn getAuditFormat(&self, input: serde_json::Value, optName: String) -> String {
[INFO] [stdout]    |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `optName`
[INFO] [stdout]   --> src/composer/command/base_command.rs:84:67
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub(crate) fn getAuditFormat(&self, input: serde_json::Value, optName: String) -> String {
[INFO] [stdout]    |                                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_optName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/command/base_command.rs:88:44
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub(crate) fn createAuditConfig(&self, config: crate::composer::config::Config, input: serde_json::Value) -> crate::composer::ad...
[INFO] [stdout]    |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/base_command.rs:88:85
[INFO] [stdout]    |
[INFO] [stdout] 88 | ...:composer::config::Config, input: serde_json::Value) -> crate::composer::advisory::audit_config::AuditConfig {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/base_config_command.rs:12:37
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub(crate) fn initialize(&self, input: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/base_config_command.rs:12:63
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub(crate) fn initialize(&self, input: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/base_config_command.rs:16:48
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn getComposerConfigFile(&self, input: serde_json::Value, config: crate::composer::config::Config) -> String {
[INFO] [stdout]    |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/command/base_config_command.rs:16:74
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn getComposerConfigFile(&self, input: serde_json::Value, config: crate::composer::config::Config) -> String {
[INFO] [stdout]    |                                                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/base_config_command.rs:20:44
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub(crate) fn getAuthConfigFile(&self, input: serde_json::Value, config: crate::composer::config::Config) -> String {
[INFO] [stdout]    |                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/command/base_config_command.rs:20:70
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub(crate) fn getAuthConfigFile(&self, input: serde_json::Value, config: crate::composer::config::Config) -> String {
[INFO] [stdout]    |                                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/base_dependency_command.rs:17:36
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub(crate) fn doExecute(&self, input: serde_json::Value, output: serde_json::Value, inverted: bool) -> i64 {
[INFO] [stdout]    |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/base_dependency_command.rs:17:62
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub(crate) fn doExecute(&self, input: serde_json::Value, output: serde_json::Value, inverted: bool) -> i64 {
[INFO] [stdout]    |                                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inverted`
[INFO] [stdout]   --> src/composer/command/base_dependency_command.rs:17:89
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub(crate) fn doExecute(&self, input: serde_json::Value, output: serde_json::Value, inverted: bool) -> i64 {
[INFO] [stdout]    |                                                                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inverted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/base_dependency_command.rs:21:37
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub(crate) fn printTable(&self, output: serde_json::Value, results: Vec<serde_json::Value>) {
[INFO] [stdout]    |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `results`
[INFO] [stdout]   --> src/composer/command/base_dependency_command.rs:21:64
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub(crate) fn printTable(&self, output: serde_json::Value, results: Vec<serde_json::Value>) {
[INFO] [stdout]    |                                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_results`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/base_dependency_command.rs:25:37
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub(crate) fn initStyles(&self, output: serde_json::Value) {
[INFO] [stdout]    |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `results`
[INFO] [stdout]   --> src/composer/command/base_dependency_command.rs:29:36
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub(crate) fn printTree(&self, results: Vec<serde_json::Value>, prefix: String, level: i64) {
[INFO] [stdout]    |                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_results`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefix`
[INFO] [stdout]   --> src/composer/command/base_dependency_command.rs:29:69
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub(crate) fn printTree(&self, results: Vec<serde_json::Value>, prefix: String, level: i64) {
[INFO] [stdout]    |                                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `level`
[INFO] [stdout]   --> src/composer/command/base_dependency_command.rs:29:85
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub(crate) fn printTree(&self, results: Vec<serde_json::Value>, prefix: String, level: i64) {
[INFO] [stdout]    |                                                                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]   --> src/composer/command/base_dependency_command.rs:33:29
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn writeTreeLine(&self, line: String) {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/bump_command.rs:19:34
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/bump_command.rs:19:60
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/command/bump_command.rs:23:26
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn doBump(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, devOnly: bool, noDevOnly: bool, dryRun: bool...
[INFO] [stdout]    |                          ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `devOnly`
[INFO] [stdout]   --> src/composer/command/bump_command.rs:23:89
[INFO] [stdout]    |
[INFO] [stdout] 23 | ...interface::IOInterface>, devOnly: bool, noDevOnly: bool, dryRun: bool, packagesFilter: Vec<serde_json::Value>, devOnlyFlagHint: S...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_devOnly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `noDevOnly`
[INFO] [stdout]   --> src/composer/command/bump_command.rs:23:104
[INFO] [stdout]    |
[INFO] [stdout] 23 | ...rface>, devOnly: bool, noDevOnly: bool, dryRun: bool, packagesFilter: Vec<serde_json::Value>, devOnlyFlagHint: String) -> i64 {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noDevOnly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dryRun`
[INFO] [stdout]   --> src/composer/command/bump_command.rs:23:121
[INFO] [stdout]    |
[INFO] [stdout] 23 | ...y: bool, noDevOnly: bool, dryRun: bool, packagesFilter: Vec<serde_json::Value>, devOnlyFlagHint: String) -> i64 {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_dryRun`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packagesFilter`
[INFO] [stdout]   --> src/composer/command/bump_command.rs:23:135
[INFO] [stdout]    |
[INFO] [stdout] 23 | ...ol, dryRun: bool, packagesFilter: Vec<serde_json::Value>, devOnlyFlagHint: String) -> i64 {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packagesFilter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `devOnlyFlagHint`
[INFO] [stdout]   --> src/composer/command/bump_command.rs:23:175
[INFO] [stdout]    |
[INFO] [stdout] 23 | ...de_json::Value>, devOnlyFlagHint: String) -> i64 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_devOnlyFlagHint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `json`
[INFO] [stdout]   --> src/composer/command/bump_command.rs:27:33
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn updateFileCleanly(&self, json: crate::composer::json::json_file::JsonFile, updates: Vec<serde_json::Value>) -> bool {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `updates`
[INFO] [stdout]   --> src/composer/command/bump_command.rs:27:83
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn updateFileCleanly(&self, json: crate::composer::json::json_file::JsonFile, updates: Vec<serde_json::Value>) -> bool {
[INFO] [stdout]    |                                                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_updates`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/check_platform_reqs_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/check_platform_reqs_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/check_platform_reqs_command.rs:20:37
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub(crate) fn printTable(&self, output: serde_json::Value, results: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]    |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `results`
[INFO] [stdout]   --> src/composer/command/check_platform_reqs_command.rs:20:64
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub(crate) fn printTable(&self, output: serde_json::Value, results: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]    |                                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_results`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]   --> src/composer/command/check_platform_reqs_command.rs:20:97
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub(crate) fn printTable(&self, output: serde_json::Value, results: Vec<serde_json::Value>, format: String) {
[INFO] [stdout]    |                                                                                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_format`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/clear_cache_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/clear_cache_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `disablePlugins`
[INFO] [stdout]  --> src/composer/command/completion_trait.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 |     fn requireComposer(&self, disablePlugins: Option<bool>, disableScripts: Option<bool>) -> crate::composer::composer::Composer { to...
[INFO] [stdout]   |                               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_disablePlugins`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `disableScripts`
[INFO] [stdout]  --> src/composer/command/completion_trait.rs:4:61
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...ins: Option<bool>, disableScripts: Option<bool>) -> crate::composer::composer::Composer { todo!() }
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_disableScripts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `includeRootPackage`
[INFO] [stdout]  --> src/composer/command/completion_trait.rs:7:39
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn suggestInstalledPackage(&self, includeRootPackage: bool, includePlatformPackages: bool) -> serde_json::Value { todo!() }
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_includeRootPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `includePlatformPackages`
[INFO] [stdout]  --> src/composer/command/completion_trait.rs:7:65
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn suggestInstalledPackage(&self, includeRootPackage: bool, includePlatformPackages: bool) -> serde_json::Value { todo!() }
[INFO] [stdout]   |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_includePlatformPackages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `includeRootPackage`
[INFO] [stdout]  --> src/composer/command/completion_trait.rs:8:44
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn suggestInstalledPackageTypes(&self, includeRootPackage: bool) -> serde_json::Value { todo!() }
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_includeRootPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]  --> src/composer/command/completion_trait.rs:9:39
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn suggestAvailablePackage(&self, max: i64) -> serde_json::Value { todo!() }
[INFO] [stdout]   |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/config_command.rs:18:37
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub(crate) fn initialize(&self, input: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/config_command.rs:18:63
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub(crate) fn initialize(&self, input: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/config_command.rs:22:34
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/config_command.rs:22:60
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/composer/command/config_command.rs:26:44
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub(crate) fn handleSingleValue(&self, key: String, callbacks: Vec<serde_json::Value>, values: Vec<serde_json::Value>, method: S...
[INFO] [stdout]    |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `callbacks`
[INFO] [stdout]   --> src/composer/command/config_command.rs:26:57
[INFO] [stdout]    |
[INFO] [stdout] 26 | ...ue(&self, key: String, callbacks: Vec<serde_json::Value>, values: Vec<serde_json::Value>, method: String) {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_callbacks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/composer/command/config_command.rs:26:92
[INFO] [stdout]    |
[INFO] [stdout] 26 | ...: Vec<serde_json::Value>, values: Vec<serde_json::Value>, method: String) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `method`
[INFO] [stdout]   --> src/composer/command/config_command.rs:26:124
[INFO] [stdout]    |
[INFO] [stdout] 26 | ...: Vec<serde_json::Value>, method: String) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_method`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/composer/command/config_command.rs:30:43
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub(crate) fn handleMultiValue(&self, key: String, callbacks: Vec<serde_json::Value>, values: Vec<serde_json::Value>, method: St...
[INFO] [stdout]    |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `callbacks`
[INFO] [stdout]   --> src/composer/command/config_command.rs:30:56
[INFO] [stdout]    |
[INFO] [stdout] 30 | ...ue(&self, key: String, callbacks: Vec<serde_json::Value>, values: Vec<serde_json::Value>, method: String) {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_callbacks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/composer/command/config_command.rs:30:91
[INFO] [stdout]    |
[INFO] [stdout] 30 | ...: Vec<serde_json::Value>, values: Vec<serde_json::Value>, method: String) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `method`
[INFO] [stdout]   --> src/composer/command/config_command.rs:30:123
[INFO] [stdout]    |
[INFO] [stdout] 30 | ...: Vec<serde_json::Value>, method: String) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_method`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contents`
[INFO] [stdout]   --> src/composer/command/config_command.rs:34:44
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub(crate) fn listConfiguration(&self, contents: Vec<serde_json::Value>, rawContents: Vec<serde_json::Value>, output: serde_json...
[INFO] [stdout]    |                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contents`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rawContents`
[INFO] [stdout]   --> src/composer/command/config_command.rs:34:78
[INFO] [stdout]    |
[INFO] [stdout] 34 | ...<serde_json::Value>, rawContents: Vec<serde_json::Value>, output: serde_json::Value, k: Option<String>, showSource: bool) {
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rawContents`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/config_command.rs:34:115
[INFO] [stdout]    |
[INFO] [stdout] 34 | ...: Vec<serde_json::Value>, output: serde_json::Value, k: Option<String>, showSource: bool) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> src/composer/command/config_command.rs:34:142
[INFO] [stdout]    |
[INFO] [stdout] 34 | ...e>, output: serde_json::Value, k: Option<String>, showSource: bool) {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `showSource`
[INFO] [stdout]   --> src/composer/command/config_command.rs:34:161
[INFO] [stdout]    |
[INFO] [stdout] 34 | ...e, k: Option<String>, showSource: bool) {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_showSource`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/command/config_command.rs:42:34
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn flattenSettingKeys(&self, config: Vec<serde_json::Value>, prefix: String) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefix`
[INFO] [stdout]   --> src/composer/command/config_command.rs:42:66
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn flattenSettingKeys(&self, config: Vec<serde_json::Value>, prefix: String) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn installProject(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Con...
[INFO] [stdout]    |                                  ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:97
[INFO] [stdout]    |
[INFO] [stdout] 20 | ..._interface::IOInterface>, config: crate::composer::config::Config, input: serde_json::Value, packageName: Option<String>, directo...
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:138
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...:composer::config::Config, input: serde_json::Value, packageName: Option<String>, directory: Option<String>, packageVersion: Opti...
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageName`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:164
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...: serde_json::Value, packageName: Option<String>, directory: Option<String>, packageVersion: Option<String>, stability: Option<St...
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `directory`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:193
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...eName: Option<String>, directory: Option<String>, packageVersion: Option<String>, stability: Option<String>, preferSource: bool, ...
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_directory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageVersion`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:220
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...: Option<String>, packageVersion: Option<String>, stability: Option<String>, preferSource: bool, preferDist: bool, installDevPack...
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageVersion`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stability`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:252
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...rsion: Option<String>, stability: Option<String>, preferSource: bool, preferDist: bool, installDevPackages: bool, repositories: s...
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stability`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preferSource`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:279
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...ty: Option<String>, preferSource: bool, preferDist: bool, installDevPackages: bool, repositories: serde_json::Value, disablePlugi...
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preferSource`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preferDist`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:299
[INFO] [stdout]    |
[INFO] [stdout] 20 | ..., preferSource: bool, preferDist: bool, installDevPackages: bool, repositories: serde_json::Value, disablePlugins: bool, disableS...
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preferDist`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `installDevPackages`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:317
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...erDist: bool, installDevPackages: bool, repositories: serde_json::Value, disablePlugins: bool, disableScripts: bool, noProgress: ...
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_installDevPackages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repositories`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:343
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...lDevPackages: bool, repositories: serde_json::Value, disablePlugins: bool, disableScripts: bool, noProgress: bool, noInstall: boo...
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repositories`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `disablePlugins`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:376
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...erde_json::Value, disablePlugins: bool, disableScripts: bool, noProgress: bool, noInstall: bool, platformRequirementFilter: Optio...
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_disablePlugins`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `disableScripts`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:398
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...blePlugins: bool, disableScripts: bool, noProgress: bool, noInstall: bool, platformRequirementFilter: Option<Box<dyn crate::compo...
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_disableScripts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `noProgress`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:420
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...disableScripts: bool, noProgress: bool, noInstall: bool, platformRequirementFilter: Option<Box<dyn crate::composer::filter::platf...
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noProgress`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `noInstall`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:438
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...ool, noProgress: bool, noInstall: bool, platformRequirementFilter: Option<Box<dyn crate::composer::filter::platform_requirement_f...
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noInstall`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platformRequirementFilter`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:455
[INFO] [stdout]    |
[INFO] [stdout] 20 | ... bool, platformRequirementFilter: Option<Box<dyn crate::composer::filter::platform_requirement_filter::platform_requirement_filte...
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platformRequirementFilter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `secureHttp`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:628
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...entFilterInterface>>, secureHttp: bool, addRepository: bool) -> i64 {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_secureHttp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addRepository`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:20:646
[INFO] [stdout]    |
[INFO] [stdout] 20 | ... secureHttp: bool, addRepository: bool) -> i64 {
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_addRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:24:45
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub(crate) fn installRootPackage(&self, input: serde_json::Value, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>,...
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:24:71
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...lf, input: serde_json::Value, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::Con...
[INFO] [stdout]    |                                  ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:24:134
[INFO] [stdout]    |
[INFO] [stdout] 24 | ..._interface::IOInterface>, config: crate::composer::config::Config, packageName: String, platformRequirementFilter: Box<dyn crate:...
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageName`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:24:175
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...ser::config::Config, packageName: String, platformRequirementFilter: Box<dyn crate::composer::filter::platform_requirement_filter...
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platformRequirementFilter`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:24:196
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...tring, platformRequirementFilter: Box<dyn crate::composer::filter::platform_requirement_filter::platform_requirement_filter_inter...
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platformRequirementFilter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `directory`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:24:361
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...ementFilterInterface>, directory: Option<String>, packageVersion: Option<String>, stability: Option<String>, preferSource: bool, ...
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_directory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageVersion`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:24:388
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...: Option<String>, packageVersion: Option<String>, stability: Option<String>, preferSource: bool, preferDist: bool, installDevPack...
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageVersion`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stability`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:24:420
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...rsion: Option<String>, stability: Option<String>, preferSource: bool, preferDist: bool, installDevPackages: bool, repositories: O...
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stability`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preferSource`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:24:447
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...ty: Option<String>, preferSource: bool, preferDist: bool, installDevPackages: bool, repositories: Option<Vec<serde_json::Value>>,...
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preferSource`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preferDist`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:24:467
[INFO] [stdout]    |
[INFO] [stdout] 24 | ..., preferSource: bool, preferDist: bool, installDevPackages: bool, repositories: Option<Vec<serde_json::Value>>, disablePlugins: b...
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preferDist`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `installDevPackages`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:24:485
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...erDist: bool, installDevPackages: bool, repositories: Option<Vec<serde_json::Value>>, disablePlugins: bool, disableScripts: bool,...
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_installDevPackages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repositories`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:24:511
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...lDevPackages: bool, repositories: Option<Vec<serde_json::Value>>, disablePlugins: bool, disableScripts: bool, noProgress: bool, s...
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repositories`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `disablePlugins`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:24:557
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...de_json::Value>>, disablePlugins: bool, disableScripts: bool, noProgress: bool, secureHttp: bool) -> bool {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_disablePlugins`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `disableScripts`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:24:579
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...blePlugins: bool, disableScripts: bool, noProgress: bool, secureHttp: bool) -> bool {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_disableScripts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `noProgress`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:24:601
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...disableScripts: bool, noProgress: bool, secureHttp: bool) -> bool {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noProgress`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `secureHttp`
[INFO] [stdout]   --> src/composer/command/create_project_command.rs:24:619
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...ol, noProgress: bool, secureHttp: bool) -> bool {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_secureHttp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/depends_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/depends_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locker`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:24:39
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn checkComposerLockSchema(&self, locker: crate::composer::package::locker::Locker) {
[INFO] [stdout]    |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_locker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proto`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:32:25
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn checkHttp(&self, proto: String, config: crate::composer::config::Config) {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:32:40
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn checkHttp(&self, proto: String, config: crate::composer::config::Config) {
[INFO] [stdout]    |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `url`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:36:33
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn checkComposerRepo(&self, url: String, config: crate::composer::config::Config) {
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:36:46
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn checkComposerRepo(&self, url: String, config: crate::composer::config::Config) {
[INFO] [stdout]    |                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proxy`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:40:30
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn checkHttpProxy(&self, proxy: crate::composer::util::http::request_proxy::RequestProxy, protocol: String) {
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_proxy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:40:95
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn checkHttpProxy(&self, proxy: crate::composer::util::http::request_proxy::RequestProxy, protocol: String) {
[INFO] [stdout]    |                                                                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `domain`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:44:32
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn checkGithubOauth(&self, domain: String, token: String) {
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_domain`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:44:48
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn checkGithubOauth(&self, domain: String, token: String) {
[INFO] [stdout]    |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `domain`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:48:34
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn getGithubRateLimit(&self, domain: String, token: Option<String>) {
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_domain`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:48:50
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn getGithubRateLimit(&self, domain: String, token: Option<String>) {
[INFO] [stdout]    |                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:52:30
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn checkDiskSpace(&self, config: crate::composer::config::Config) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:56:28
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn checkPubKeys(&self, config: crate::composer::config::Config) {
[INFO] [stdout]    |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:60:28
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn checkVersion(&self, config: crate::composer::config::Config) {
[INFO] [stdout]    |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:64:34
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn checkComposerAudit(&self, config: crate::composer::config::Config) {
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]   --> src/composer/command/diagnose_command.rs:72:28
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn outputResult(&self, result: serde_json::Value) {
[INFO] [stdout]    |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/dump_autoload_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/dump_autoload_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/exec_command.rs:16:35
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn interact(&self, input: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/exec_command.rs:16:61
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn interact(&self, input: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/exec_command.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/exec_command.rs:20:60
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `forDisplay`
[INFO] [stdout]   --> src/composer/command/exec_command.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn getBinaries(&self, forDisplay: bool) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_forDisplay`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/fund_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/fund_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fundings`
[INFO] [stdout]   --> src/composer/command/fund_command.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn insertFundingData(&self, fundings: Vec<serde_json::Value>, package: Box<dyn crate::composer::package::complete_package_interf...
[INFO] [stdout]    |                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fundings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/command/fund_command.rs:20:67
[INFO] [stdout]    |
[INFO] [stdout] 20 | ... Vec<serde_json::Value>, package: Box<dyn crate::composer::package::complete_package_interface::CompletePackageInterface>) -> Vec...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/global_command.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn complete(&self, input: serde_json::Value, suggestions: serde_json::Value) {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suggestions`
[INFO] [stdout]   --> src/composer/command/global_command.rs:12:54
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn complete(&self, input: serde_json::Value, suggestions: serde_json::Value) {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_suggestions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/global_command.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn run(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/global_command.rs:20:49
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn run(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/global_command.rs:24:38
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn prepareSubcommandInput(&self, input: serde_json::Value, quiet: bool) -> serde_json::Value {
[INFO] [stdout]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `quiet`
[INFO] [stdout]   --> src/composer/command/global_command.rs:24:64
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn prepareSubcommandInput(&self, input: serde_json::Value, quiet: bool) -> serde_json::Value {
[INFO] [stdout]    |                                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_quiet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/home_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/home_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/command/home_command.rs:20:29
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn handlePackage(&self, package: Box<dyn crate::composer::package::complete_package_interface::CompletePackageInterface>, showHo...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `showHomepage`
[INFO] [stdout]   --> src/composer/command/home_command.rs:20:127
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...ePackageInterface>, showHomepage: bool, showOnly: bool) -> bool {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_showHomepage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `showOnly`
[INFO] [stdout]   --> src/composer/command/home_command.rs:20:147
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...e>, showHomepage: bool, showOnly: bool) -> bool {
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_showOnly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `url`
[INFO] [stdout]   --> src/composer/command/home_command.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn openBrowser(&self, url: String) {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/init_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/init_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/init_command.rs:20:37
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub(crate) fn initialize(&self, input: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/init_command.rs:20:63
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub(crate) fn initialize(&self, input: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/init_command.rs:24:35
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub(crate) fn interact(&self, input: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/init_command.rs:24:61
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub(crate) fn interact(&self, input: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `author`
[INFO] [stdout]   --> src/composer/command/init_command.rs:28:33
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn parseAuthorString(&self, author: String) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_author`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `author`
[INFO] [stdout]   --> src/composer/command/init_command.rs:32:40
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub(crate) fn formatAuthors(&self, author: String) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_author`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageName`
[INFO] [stdout]   --> src/composer/command/init_command.rs:36:44
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn namespaceFromPackageName(&self, packageName: String) -> Option<String> {
[INFO] [stdout]    |                                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignoreFile`
[INFO] [stdout]   --> src/composer/command/init_command.rs:44:42
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub(crate) fn hasVendorIgnore(&self, ignoreFile: String, vendor: String) -> bool {
[INFO] [stdout]    |                                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignoreFile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vendor`
[INFO] [stdout]   --> src/composer/command/init_command.rs:44:62
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub(crate) fn hasVendorIgnore(&self, ignoreFile: String, vendor: String) -> bool {
[INFO] [stdout]    |                                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_vendor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignoreFile`
[INFO] [stdout]   --> src/composer/command/init_command.rs:48:42
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub(crate) fn addVendorIgnore(&self, ignoreFile: String, vendor: String) {
[INFO] [stdout]    |                                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignoreFile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vendor`
[INFO] [stdout]   --> src/composer/command/init_command.rs:48:62
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub(crate) fn addVendorIgnore(&self, ignoreFile: String, vendor: String) {
[INFO] [stdout]    |                                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_vendor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `email`
[INFO] [stdout]   --> src/composer/command/init_command.rs:52:39
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub(crate) fn isValidEmail(&self, email: String) -> bool {
[INFO] [stdout]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_email`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/init_command.rs:56:34
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn updateDependencies(&self, output: serde_json::Value) {
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/init_command.rs:60:38
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn runDumpAutoloadCommand(&self, output: serde_json::Value) {
[INFO] [stdout]    |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/composer/command/init_command.rs:64:31
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn hasDependencies(&self, options: Vec<serde_json::Value>) -> bool {
[INFO] [stdout]    |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/command/init_command.rs:68:44
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn sanitizePackageNameComponent(&self, name: String) -> String {
[INFO] [stdout]    |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/install_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/install_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/licenses_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/licenses_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/outdated_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/outdated_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 |     fn getRepositorySet(&self, input: serde_json::Value, minimumStability: Option<String>) -> crate::composer::repository::repository...
[INFO] [stdout]   |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minimumStability`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:5:58
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...rde_json::Value, minimumStability: Option<String>) -> crate::composer::repository::repository_set::RepositorySet { todo!() }
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minimumStability`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:6:35
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn getMinimumStability(&self, input: serde_json::Value) -> String { todo!() }
[INFO] [stdout]   |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:7:37
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn determineRequirements(&self, input: serde_json::Value, output: serde_json::Value, requires: Vec<serde_json::Value>, platformRe...
[INFO] [stdout]   |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:7:63
[INFO] [stdout]   |
[INFO] [stdout] 7 | ... input: serde_json::Value, output: serde_json::Value, requires: Vec<serde_json::Value>, platformRepo: Option<crate::composer::repo...
[INFO] [stdout]   |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requires`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:7:90
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...tput: serde_json::Value, requires: Vec<serde_json::Value>, platformRepo: Option<crate::composer::repository::platform_repository::...
[INFO] [stdout]   |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requires`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platformRepo`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:7:124
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...<serde_json::Value>, platformRepo: Option<crate::composer::repository::platform_repository::PlatformRepository>, preferredStabilit...
[INFO] [stdout]   |                         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platformRepo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preferredStability`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:7:216
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...rmRepository>, preferredStability: String, useBestVersionConstraint: bool, fixed: bool) -> Vec<serde_json::Value> { todo!() }
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preferredStability`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `useBestVersionConstraint`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:7:244
[INFO] [stdout]   |
[INFO] [stdout] 7 | ... String, useBestVersionConstraint: bool, fixed: bool) -> Vec<serde_json::Value> { todo!() }
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_useBestVersionConstraint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fixed`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:7:276
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...estVersionConstraint: bool, fixed: bool) -> Vec<serde_json::Value> { todo!() }
[INFO] [stdout]   |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_fixed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:8:48
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn findBestVersionAndNameForPackage(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, input: serde_json::Valu...
[INFO] [stdout]   |                                                ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:8:111
[INFO] [stdout]   |
[INFO] [stdout] 8 | ..._o_interface::IOInterface>, input: serde_json::Value, name: String, platformRepo: Option<crate::composer::repository::platform_rep...
[INFO] [stdout]   |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:8:137
[INFO] [stdout]   |
[INFO] [stdout] 8 | ...>, input: serde_json::Value, name: String, platformRepo: Option<crate::composer::repository::platform_repository::PlatformReposito...
[INFO] [stdout]   |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platformRepo`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:8:151
[INFO] [stdout]   |
[INFO] [stdout] 8 | ...Value, name: String, platformRepo: Option<crate::composer::repository::platform_repository::PlatformRepository>, preferredStabilit...
[INFO] [stdout]   |                         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platformRepo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preferredStability`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:8:243
[INFO] [stdout]   |
[INFO] [stdout] 8 | ...rmRepository>, preferredStability: String, fixed: bool) -> Vec<serde_json::Value> { todo!() }
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preferredStability`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fixed`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:8:271
[INFO] [stdout]   |
[INFO] [stdout] 8 | ...preferredStability: String, fixed: bool) -> Vec<serde_json::Value> { todo!() }
[INFO] [stdout]   |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_fixed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]  --> src/composer/command/package_discovery_trait.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn findSimilar(&self, package: String) -> Vec<serde_json::Value> { todo!() }
[INFO] [stdout]   |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `candidate`
[INFO] [stdout]   --> src/composer/command/package_discovery_trait.rs:10:43
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn getPlatformExceptionDetails(&self, candidate: Box<dyn crate::composer::package::package_interface::PackageInterface>, platfor...
[INFO] [stdout]    |                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_candidate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platformRepo`
[INFO] [stdout]   --> src/composer/command/package_discovery_trait.rs:10:126
[INFO] [stdout]    |
[INFO] [stdout] 10 | ...:PackageInterface>, platformRepo: Option<crate::composer::repository::platform_repository::PlatformRepository>) -> String { todo!...
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platformRepo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/prohibits_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/prohibits_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/reinstall_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/reinstall_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/remove_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/remove_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/repository_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/repository_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repos`
[INFO] [stdout]   --> src/composer/command/repository_command.rs:20:32
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn listRepositories(&self, repos: Vec<serde_json::Value>) {
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_repos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/require_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/require_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `newRequirements`
[INFO] [stdout]   --> src/composer/command/require_command.rs:20:42
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn getInconsistentRequireKeys(&self, newRequirements: Vec<serde_json::Value>, requireKey: String) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_newRequirements`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requireKey`
[INFO] [stdout]   --> src/composer/command/require_command.rs:20:83
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn getInconsistentRequireKeys(&self, newRequirements: Vec<serde_json::Value>, requireKey: String) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                                                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requireKey`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/require_command.rs:28:24
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn doUpdate(&self, input: serde_json::Value, output: serde_json::Value, io: Box<dyn crate::composer::i_o::i_o_interface::IOInter...
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/require_command.rs:28:50
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn doUpdate(&self, input: serde_json::Value, output: serde_json::Value, io: Box<dyn crate::composer::i_o::i_o_interface::IOInter...
[INFO] [stdout]    |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/command/require_command.rs:28:77
[INFO] [stdout]    |
[INFO] [stdout] 28 | ...e, output: serde_json::Value, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, requirements: Vec<serde_json::Value>...
[INFO] [stdout]    |                                  ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requirements`
[INFO] [stdout]   --> src/composer/command/require_command.rs:28:140
[INFO] [stdout]    |
[INFO] [stdout] 28 | ...face::IOInterface>, requirements: Vec<serde_json::Value>, requireKey: String, removeKey: String) -> i64 {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requirements`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requireKey`
[INFO] [stdout]   --> src/composer/command/require_command.rs:28:178
[INFO] [stdout]    |
[INFO] [stdout] 28 | ...c<serde_json::Value>, requireKey: String, removeKey: String) -> i64 {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requireKey`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `removeKey`
[INFO] [stdout]   --> src/composer/command/require_command.rs:28:198
[INFO] [stdout]    |
[INFO] [stdout] 28 | ...>, requireKey: String, removeKey: String) -> i64 {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_removeKey`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requirementsToUpdate`
[INFO] [stdout]   --> src/composer/command/require_command.rs:32:49
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...tion(&self, requirementsToUpdate: Vec<serde_json::Value>, requireKey: String, removeKey: String, sortPackages: bool, dryRun: bool...
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requirementsToUpdate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requireKey`
[INFO] [stdout]   --> src/composer/command/require_command.rs:32:95
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...c<serde_json::Value>, requireKey: String, removeKey: String, sortPackages: bool, dryRun: bool, fixed: bool) -> i64 {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requireKey`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `removeKey`
[INFO] [stdout]   --> src/composer/command/require_command.rs:32:115
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...>, requireKey: String, removeKey: String, sortPackages: bool, dryRun: bool, fixed: bool) -> i64 {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_removeKey`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sortPackages`
[INFO] [stdout]   --> src/composer/command/require_command.rs:32:134
[INFO] [stdout]    |
[INFO] [stdout] 32 | ... removeKey: String, sortPackages: bool, dryRun: bool, fixed: bool) -> i64 {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sortPackages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dryRun`
[INFO] [stdout]   --> src/composer/command/require_command.rs:32:154
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...ring, sortPackages: bool, dryRun: bool, fixed: bool) -> i64 {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_dryRun`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fixed`
[INFO] [stdout]   --> src/composer/command/require_command.rs:32:168
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...kages: bool, dryRun: bool, fixed: bool) -> i64 {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_fixed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `json`
[INFO] [stdout]   --> src/composer/command/require_command.rs:36:26
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn updateFile(&self, json: crate::composer::json::json_file::JsonFile, new: Vec<serde_json::Value>, requireKey: String, removeKe...
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new`
[INFO] [stdout]   --> src/composer/command/require_command.rs:36:76
[INFO] [stdout]    |
[INFO] [stdout] 36 | ...::json::json_file::JsonFile, new: Vec<serde_json::Value>, requireKey: String, removeKey: String, sortPackages: bool) {
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requireKey`
[INFO] [stdout]   --> src/composer/command/require_command.rs:36:105
[INFO] [stdout]    |
[INFO] [stdout] 36 | ...c<serde_json::Value>, requireKey: String, removeKey: String, sortPackages: bool) {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requireKey`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `removeKey`
[INFO] [stdout]   --> src/composer/command/require_command.rs:36:125
[INFO] [stdout]    |
[INFO] [stdout] 36 | ...>, requireKey: String, removeKey: String, sortPackages: bool) {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_removeKey`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sortPackages`
[INFO] [stdout]   --> src/composer/command/require_command.rs:36:144
[INFO] [stdout]    |
[INFO] [stdout] 36 | ... removeKey: String, sortPackages: bool) {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sortPackages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `json`
[INFO] [stdout]   --> src/composer/command/require_command.rs:40:33
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn updateFileCleanly(&self, json: crate::composer::json::json_file::JsonFile, new: Vec<serde_json::Value>, requireKey: String, r...
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new`
[INFO] [stdout]   --> src/composer/command/require_command.rs:40:83
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...::json::json_file::JsonFile, new: Vec<serde_json::Value>, requireKey: String, removeKey: String, sortPackages: bool) -> bool {
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requireKey`
[INFO] [stdout]   --> src/composer/command/require_command.rs:40:112
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...c<serde_json::Value>, requireKey: String, removeKey: String, sortPackages: bool) -> bool {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requireKey`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `removeKey`
[INFO] [stdout]   --> src/composer/command/require_command.rs:40:132
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...>, requireKey: String, removeKey: String, sortPackages: bool) -> bool {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_removeKey`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sortPackages`
[INFO] [stdout]   --> src/composer/command/require_command.rs:40:151
[INFO] [stdout]    |
[INFO] [stdout] 40 | ... removeKey: String, sortPackages: bool) -> bool {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sortPackages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/require_command.rs:44:35
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub(crate) fn interact(&self, input: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/require_command.rs:44:61
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub(crate) fn interact(&self, input: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/run_script_command.rs:16:35
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn interact(&self, input: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/run_script_command.rs:16:61
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn interact(&self, input: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/run_script_command.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/run_script_command.rs:20:60
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/run_script_command.rs:24:38
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub(crate) fn listScripts(&self, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/script_alias_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/script_alias_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/search_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/search_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:19:34
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:19:60
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:23:36
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub(crate) fn fetchKeys(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, config: crate::composer::config::C...
[INFO] [stdout]    |                                    ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:23:99
[INFO] [stdout]    |
[INFO] [stdout] 23 | ..._interface::IOInterface>, config: crate::composer::config::Config) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:27:35
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub(crate) fn rollback(&self, output: serde_json::Value, rollbackDir: String, localFilename: String) -> i64 {
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rollbackDir`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:27:62
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub(crate) fn rollback(&self, output: serde_json::Value, rollbackDir: String, localFilename: String) -> i64 {
[INFO] [stdout]    |                                                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rollbackDir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `localFilename`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:27:83
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub(crate) fn rollback(&self, output: serde_json::Value, rollbackDir: String, localFilename: String) -> i64 {
[INFO] [stdout]    |                                                                                   ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_localFilename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `localFilename`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:31:39
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub(crate) fn setLocalPhar(&self, localFilename: String, newFilename: String, backupTarget: Option<String>) -> bool {
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_localFilename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `newFilename`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:31:62
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub(crate) fn setLocalPhar(&self, localFilename: String, newFilename: String, backupTarget: Option<String>) -> bool {
[INFO] [stdout]    |                                                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_newFilename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `backupTarget`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:31:83
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub(crate) fn setLocalPhar(&self, localFilename: String, newFilename: String, backupTarget: Option<String>) -> bool {
[INFO] [stdout]    |                                                                                   ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_backupTarget`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rollbackDir`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:35:39
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub(crate) fn cleanBackups(&self, rollbackDir: String, except: Option<String>) {
[INFO] [stdout]    |                                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rollbackDir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `except`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:35:60
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub(crate) fn cleanBackups(&self, rollbackDir: String, except: Option<String>) {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_except`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rollbackDir`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:39:47
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub(crate) fn getLastBackupVersion(&self, rollbackDir: String) -> Option<String> {
[INFO] [stdout]    |                                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rollbackDir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rollbackDir`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:43:51
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub(crate) fn getOldInstallationFinder(&self, rollbackDir: String) -> serde_json::Value {
[INFO] [stdout]    |                                                   ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rollbackDir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pharFile`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:47:39
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub(crate) fn validatePhar(&self, pharFile: String, error: Option<String>) -> bool {
[INFO] [stdout]    |                                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pharFile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:47:57
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub(crate) fn validatePhar(&self, pharFile: String, error: Option<String>) -> bool {
[INFO] [stdout]    |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `localFilename`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:55:44
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub(crate) fn tryAsWindowsAdmin(&self, localFilename: String, newFilename: String) -> bool {
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_localFilename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `newFilename`
[INFO] [stdout]   --> src/composer/command/self_update_command.rs:55:67
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub(crate) fn tryAsWindowsAdmin(&self, localFilename: String, newFilename: String) -> bool {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_newFilename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/show_command.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/show_command.rs:20:60
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/command/show_command.rs:24:29
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn printPackages(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, packages: Vec<serde_json::Value>, indent:...
[INFO] [stdout]    |                             ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packages`
[INFO] [stdout]   --> src/composer/command/show_command.rs:24:92
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...nterface::IOInterface>, packages: Vec<serde_json::Value>, indent: String, writeVersion: bool, writeLatest: bool, writeDescription...
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `indent`
[INFO] [stdout]   --> src/composer/command/show_command.rs:24:126
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...: Vec<serde_json::Value>, indent: String, writeVersion: bool, writeLatest: bool, writeDescription: bool, width: i64, versionLengt...
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_indent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `writeVersion`
[INFO] [stdout]   --> src/composer/command/show_command.rs:24:142
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...e>, indent: String, writeVersion: bool, writeLatest: bool, writeDescription: bool, width: i64, versionLength: i64, nameLength: i6...
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_writeVersion`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `writeLatest`
[INFO] [stdout]   --> src/composer/command/show_command.rs:24:162
[INFO] [stdout]    |
[INFO] [stdout] 24 | ... writeVersion: bool, writeLatest: bool, writeDescription: bool, width: i64, versionLength: i64, nameLength: i64, latestLength: i6...
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_writeLatest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `writeDescription`
[INFO] [stdout]   --> src/composer/command/show_command.rs:24:181
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...teLatest: bool, writeDescription: bool, width: i64, versionLength: i64, nameLength: i64, latestLength: i64, writeReleaseDate: boo...
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_writeDescription`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/composer/command/show_command.rs:24:205
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...l, writeDescription: bool, width: i64, versionLength: i64, nameLength: i64, latestLength: i64, writeReleaseDate: bool, releaseDat...
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `versionLength`
[INFO] [stdout]   --> src/composer/command/show_command.rs:24:217
[INFO] [stdout]    |
[INFO] [stdout] 24 | ... bool, width: i64, versionLength: i64, nameLength: i64, latestLength: i64, writeReleaseDate: bool, releaseDateLength: i64) {
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_versionLength`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nameLength`
[INFO] [stdout]   --> src/composer/command/show_command.rs:24:237
[INFO] [stdout]    |
[INFO] [stdout] 24 | ..., versionLength: i64, nameLength: i64, latestLength: i64, writeReleaseDate: bool, releaseDateLength: i64) {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nameLength`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `latestLength`
[INFO] [stdout]   --> src/composer/command/show_command.rs:24:254
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...4, nameLength: i64, latestLength: i64, writeReleaseDate: bool, releaseDateLength: i64) {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_latestLength`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `writeReleaseDate`
[INFO] [stdout]   --> src/composer/command/show_command.rs:24:273
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...estLength: i64, writeReleaseDate: bool, releaseDateLength: i64) {
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_writeReleaseDate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `releaseDateLength`
[INFO] [stdout]   --> src/composer/command/show_command.rs:24:297
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...aseDate: bool, releaseDateLength: i64) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_releaseDateLength`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `latestPackage`
[INFO] [stdout]   --> src/composer/command/show_command.rs:32:42
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...ersionStyle(&self, latestPackage: Box<dyn crate::composer::package::package_interface::PackageInterface>, package: Box<dyn crate:...
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_latestPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/command/show_command.rs:32:129
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...face::PackageInterface>, package: Box<dyn crate::composer::package::package_interface::PackageInterface>) {
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `installedRepo`
[INFO] [stdout]   --> src/composer/command/show_command.rs:36:37
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub(crate) fn getPackage(&self, installedRepo: crate::composer::repository::installed_repository::InstalledRepository, repos: Bo...
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_installedRepo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repos`
[INFO] [stdout]   --> src/composer/command/show_command.rs:36:124
[INFO] [stdout]    |
[INFO] [stdout] 36 | ...tory::InstalledRepository, repos: Box<dyn crate::composer::repository::repository_interface::RepositoryInterface>, name: String, ...
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_repos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/command/show_command.rs:36:212
[INFO] [stdout]    |
[INFO] [stdout] 36 | ...face::RepositoryInterface>, name: String, version: serde_json::Value) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]   --> src/composer/command/show_command.rs:36:226
[INFO] [stdout]    |
[INFO] [stdout] 36 | ...nterface>, name: String, version: serde_json::Value) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/command/show_command.rs:40:43
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub(crate) fn printPackageInfo(&self, package: Box<dyn crate::composer::package::complete_package_interface::CompletePackageInte...
[INFO] [stdout]    |                                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `versions`
[INFO] [stdout]   --> src/composer/command/show_command.rs:40:141
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...pletePackageInterface>, versions: Vec<serde_json::Value>, installedRepo: crate::composer::repository::installed_repository::Insta...
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_versions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `installedRepo`
[INFO] [stdout]   --> src/composer/command/show_command.rs:40:175
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...erde_json::Value>, installedRepo: crate::composer::repository::installed_repository::InstalledRepository, latestPackage: Option<B...
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_installedRepo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `latestPackage`
[INFO] [stdout]   --> src/composer/command/show_command.rs:40:262
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...stalledRepository, latestPackage: Option<Box<dyn crate::composer::package::package_interface::PackageInterface>>) {
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_latestPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/command/show_command.rs:44:36
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub(crate) fn printMeta(&self, package: Box<dyn crate::composer::package::complete_package_interface::CompletePackageInterface>,...
[INFO] [stdout]    |                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `versions`
[INFO] [stdout]   --> src/composer/command/show_command.rs:44:134
[INFO] [stdout]    |
[INFO] [stdout] 44 | ...pletePackageInterface>, versions: Vec<serde_json::Value>, installedRepo: crate::composer::repository::installed_repository::Insta...
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_versions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `installedRepo`
[INFO] [stdout]   --> src/composer/command/show_command.rs:44:168
[INFO] [stdout]    |
[INFO] [stdout] 44 | ...erde_json::Value>, installedRepo: crate::composer::repository::installed_repository::InstalledRepository, latestPackage: Option<B...
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_installedRepo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `latestPackage`
[INFO] [stdout]   --> src/composer/command/show_command.rs:44:255
[INFO] [stdout]    |
[INFO] [stdout] 44 | ...stalledRepository, latestPackage: Option<Box<dyn crate::composer::package::package_interface::PackageInterface>>) {
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_latestPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/command/show_command.rs:48:40
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub(crate) fn printVersions(&self, package: Box<dyn crate::composer::package::complete_package_interface::CompletePackageInterfa...
[INFO] [stdout]    |                                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `versions`
[INFO] [stdout]   --> src/composer/command/show_command.rs:48:138
[INFO] [stdout]    |
[INFO] [stdout] 48 | ...pletePackageInterface>, versions: Vec<serde_json::Value>, installedRepo: crate::composer::repository::installed_repository::Insta...
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_versions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `installedRepo`
[INFO] [stdout]   --> src/composer/command/show_command.rs:48:172
[INFO] [stdout]    |
[INFO] [stdout] 48 | ...erde_json::Value>, installedRepo: crate::composer::repository::installed_repository::InstalledRepository) {
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_installedRepo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/command/show_command.rs:52:37
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub(crate) fn printLinks(&self, package: Box<dyn crate::composer::package::complete_package_interface::CompletePackageInterface>...
[INFO] [stdout]    |                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `linkType`
[INFO] [stdout]   --> src/composer/command/show_command.rs:52:135
[INFO] [stdout]    |
[INFO] [stdout] 52 | ...pletePackageInterface>, linkType: String, title: Option<String>) {
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_linkType`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `title`
[INFO] [stdout]   --> src/composer/command/show_command.rs:52:153
[INFO] [stdout]    |
[INFO] [stdout] 52 | ...erface>, linkType: String, title: Option<String>) {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_title`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/command/show_command.rs:56:40
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub(crate) fn printLicenses(&self, package: Box<dyn crate::composer::package::complete_package_interface::CompletePackageInterfa...
[INFO] [stdout]    |                                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/command/show_command.rs:60:49
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub(crate) fn printPackageInfoAsJson(&self, package: Box<dyn crate::composer::package::complete_package_interface::CompletePacka...
[INFO] [stdout]    |                                                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `versions`
[INFO] [stdout]   --> src/composer/command/show_command.rs:60:147
[INFO] [stdout]    |
[INFO] [stdout] 60 | ...pletePackageInterface>, versions: Vec<serde_json::Value>, installedRepo: crate::composer::repository::installed_repository::Insta...
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_versions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `installedRepo`
[INFO] [stdout]   --> src/composer/command/show_command.rs:60:181
[INFO] [stdout]    |
[INFO] [stdout] 60 | ...erde_json::Value>, installedRepo: crate::composer::repository::installed_repository::InstalledRepository, latestPackage: Option<B...
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_installedRepo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `latestPackage`
[INFO] [stdout]   --> src/composer/command/show_command.rs:60:268
[INFO] [stdout]    |
[INFO] [stdout] 60 | ...stalledRepository, latestPackage: Option<Box<dyn crate::composer::package::package_interface::PackageInterface>>) {
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_latestPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `json`
[INFO] [stdout]   --> src/composer/command/show_command.rs:64:30
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn appendVersions(&self, json: Vec<serde_json::Value>, versions: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `versions`
[INFO] [stdout]   --> src/composer/command/show_command.rs:64:60
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn appendVersions(&self, json: Vec<serde_json::Value>, versions: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_versions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `json`
[INFO] [stdout]   --> src/composer/command/show_command.rs:68:30
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn appendLicenses(&self, json: Vec<serde_json::Value>, package: Box<dyn crate::composer::package::complete_package_interface::Co...
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/command/show_command.rs:68:60
[INFO] [stdout]    |
[INFO] [stdout] 68 | ... Vec<serde_json::Value>, package: Box<dyn crate::composer::package::complete_package_interface::CompletePackageInterface>) -> Vec...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `json`
[INFO] [stdout]   --> src/composer/command/show_command.rs:72:30
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn appendAutoload(&self, json: Vec<serde_json::Value>, package: Box<dyn crate::composer::package::complete_package_interface::Co...
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/command/show_command.rs:72:60
[INFO] [stdout]    |
[INFO] [stdout] 72 | ... Vec<serde_json::Value>, package: Box<dyn crate::composer::package::complete_package_interface::CompletePackageInterface>) -> Vec...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `json`
[INFO] [stdout]   --> src/composer/command/show_command.rs:76:27
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn appendLinks(&self, json: Vec<serde_json::Value>, package: Box<dyn crate::composer::package::complete_package_interface::Compl...
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/command/show_command.rs:76:57
[INFO] [stdout]    |
[INFO] [stdout] 76 | ... Vec<serde_json::Value>, package: Box<dyn crate::composer::package::complete_package_interface::CompletePackageInterface>) -> Vec...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `json`
[INFO] [stdout]   --> src/composer/command/show_command.rs:80:26
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn appendLink(&self, json: Vec<serde_json::Value>, package: Box<dyn crate::composer::package::complete_package_interface::Comple...
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/command/show_command.rs:80:56
[INFO] [stdout]    |
[INFO] [stdout] 80 | ... Vec<serde_json::Value>, package: Box<dyn crate::composer::package::complete_package_interface::CompletePackageInterface>, linkTy...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `linkType`
[INFO] [stdout]   --> src/composer/command/show_command.rs:80:154
[INFO] [stdout]    |
[INFO] [stdout] 80 | ...pletePackageInterface>, linkType: String) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_linkType`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/show_command.rs:84:37
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub(crate) fn initStyles(&self, output: serde_json::Value) {
[INFO] [stdout]    |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arrayTree`
[INFO] [stdout]   --> src/composer/command/show_command.rs:88:45
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub(crate) fn displayPackageTree(&self, arrayTree: Vec<serde_json::Value>) {
[INFO] [stdout]    |                                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arrayTree`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/command/show_command.rs:92:46
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub(crate) fn generatePackageTree(&self, package: Box<dyn crate::composer::package::package_interface::PackageInterface>, instal...
[INFO] [stdout]    |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `installedRepo`
[INFO] [stdout]   --> src/composer/command/show_command.rs:92:127
[INFO] [stdout]    |
[INFO] [stdout] 92 | ...PackageInterface>, installedRepo: crate::composer::repository::installed_repository::InstalledRepository, remoteRepos: Box<dyn cr...
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_installedRepo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remoteRepos`
[INFO] [stdout]   --> src/composer/command/show_command.rs:92:214
[INFO] [stdout]    |
[INFO] [stdout] 92 | ...InstalledRepository, remoteRepos: Box<dyn crate::composer::repository::repository_interface::RepositoryInterface>) -> Vec<serde_j...
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remoteRepos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/command/show_command.rs:96:38
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub(crate) fn displayTree(&self, package: serde_json::Value, packagesInTree: Vec<serde_json::Value>, previousTreeBar: String, le...
[INFO] [stdout]    |                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packagesInTree`
[INFO] [stdout]   --> src/composer/command/show_command.rs:96:66
[INFO] [stdout]    |
[INFO] [stdout] 96 | ...erde_json::Value, packagesInTree: Vec<serde_json::Value>, previousTreeBar: String, level: i64) {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packagesInTree`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previousTreeBar`
[INFO] [stdout]   --> src/composer/command/show_command.rs:96:106
[INFO] [stdout]    |
[INFO] [stdout] 96 | ...de_json::Value>, previousTreeBar: String, level: i64) {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previousTreeBar`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `level`
[INFO] [stdout]   --> src/composer/command/show_command.rs:96:131
[INFO] [stdout]    |
[INFO] [stdout] 96 | ..., previousTreeBar: String, level: i64) {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/composer/command/show_command.rs:100:34
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub(crate) fn addTree(&self, name: String, link: crate::composer::package::link::Link, installedRepo: crate::composer::reposito...
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `link`
[INFO] [stdout]    --> src/composer/command/show_command.rs:100:48
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub(crate) fn addTree(&self, name: String, link: crate::composer::package::link::Link, installedRepo: crate::composer::reposito...
[INFO] [stdout]     |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_link`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `installedRepo`
[INFO] [stdout]    --> src/composer/command/show_command.rs:100:92
[INFO] [stdout]     |
[INFO] [stdout] 100 | ...ckage::link::Link, installedRepo: crate::composer::repository::installed_repository::InstalledRepository, remoteRepos: Box<dyn c...
[INFO] [stdout]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_installedRepo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remoteRepos`
[INFO] [stdout]    --> src/composer/command/show_command.rs:100:179
[INFO] [stdout]     |
[INFO] [stdout] 100 | ...InstalledRepository, remoteRepos: Box<dyn crate::composer::repository::repository_interface::RepositoryInterface>, packagesInTre...
[INFO] [stdout]     |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remoteRepos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packagesInTree`
[INFO] [stdout]    --> src/composer/command/show_command.rs:100:273
[INFO] [stdout]     |
[INFO] [stdout] 100 | ...sitoryInterface>, packagesInTree: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packagesInTree`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `updateStatus`
[INFO] [stdout]    --> src/composer/command/show_command.rs:104:42
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn updateStatusToVersionStyle(&self, updateStatus: String) -> String {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_updateStatus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `latestPackage`
[INFO] [stdout]    --> src/composer/command/show_command.rs:108:31
[INFO] [stdout]     |
[INFO] [stdout] 108 |     fn getUpdateStatus(&self, latestPackage: Box<dyn crate::composer::package::package_interface::PackageInterface>, package: Box<d...
[INFO] [stdout]     |                               ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_latestPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]    --> src/composer/command/show_command.rs:108:118
[INFO] [stdout]     |
[INFO] [stdout] 108 | ...face::PackageInterface>, package: Box<dyn crate::composer::package::package_interface::PackageInterface>) -> String {
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]    --> src/composer/command/show_command.rs:112:29
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn writeTreeLine(&self, line: String) {
[INFO] [stdout]     |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]    --> src/composer/command/show_command.rs:116:33
[INFO] [stdout]     |
[INFO] [stdout] 116 |     fn findLatestPackage(&self, package: Box<dyn crate::composer::package::package_interface::PackageInterface>, composer: crate::c...
[INFO] [stdout]     |                                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `composer`
[INFO] [stdout]    --> src/composer/command/show_command.rs:116:114
[INFO] [stdout]     |
[INFO] [stdout] 116 | ...ace::PackageInterface>, composer: crate::composer::composer::Composer, platformRepo: crate::composer::repository::platform_repos...
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_composer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platformRepo`
[INFO] [stdout]    --> src/composer/command/show_command.rs:116:161
[INFO] [stdout]     |
[INFO] [stdout] 116 | ...composer::Composer, platformRepo: crate::composer::repository::platform_repository::PlatformRepository, majorOnly: bool, minorOn...
[INFO] [stdout]     |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platformRepo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `majorOnly`
[INFO] [stdout]    --> src/composer/command/show_command.rs:116:245
[INFO] [stdout]     |
[INFO] [stdout] 116 | ...y::PlatformRepository, majorOnly: bool, minorOnly: bool, patchOnly: bool, platformReqFilter: Box<dyn crate::composer::filter::pl...
[INFO] [stdout]     |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_majorOnly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minorOnly`
[INFO] [stdout]    --> src/composer/command/show_command.rs:116:262
[INFO] [stdout]     |
[INFO] [stdout] 116 | ...tory, majorOnly: bool, minorOnly: bool, patchOnly: bool, platformReqFilter: Box<dyn crate::composer::filter::platform_requiremen...
[INFO] [stdout]     |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minorOnly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `patchOnly`
[INFO] [stdout]    --> src/composer/command/show_command.rs:116:279
[INFO] [stdout]     |
[INFO] [stdout] 116 | ...bool, minorOnly: bool, patchOnly: bool, platformReqFilter: Box<dyn crate::composer::filter::platform_requirement_filter::platfor...
[INFO] [stdout]     |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_patchOnly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platformReqFilter`
[INFO] [stdout]    --> src/composer/command/show_command.rs:116:296
[INFO] [stdout]     |
[INFO] [stdout] 116 | ...tchOnly: bool, platformReqFilter: Box<dyn crate::composer::filter::platform_requirement_filter::platform_requirement_filter_inte...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platformReqFilter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `composer`
[INFO] [stdout]    --> src/composer/command/show_command.rs:120:32
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn getRepositorySet(&self, composer: crate::composer::composer::Composer) -> crate::composer::repository::repository_set::Repos...
[INFO] [stdout]     |                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_composer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `releaseDate`
[INFO] [stdout]    --> src/composer/command/show_command.rs:124:31
[INFO] [stdout]     |
[INFO] [stdout] 124 |     fn getRelativeTime(&self, releaseDate: serde_json::Value) -> String {
[INFO] [stdout]     |                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_releaseDate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/status_command.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/status_command.rs:20:60
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/status_command.rs:24:25
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn doExecute(&self, input: serde_json::Value) -> i64 {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/suggests_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/suggests_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/update_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/update_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/command/update_command.rs:20:40
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn getPackagesInteractively(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, input: serde_json::Value, outp...
[INFO] [stdout]    |                                        ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/update_command.rs:20:103
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...o_interface::IOInterface>, input: serde_json::Value, output: serde_json::Value, composer: crate::composer::composer::Composer, pa...
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/update_command.rs:20:129
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...input: serde_json::Value, output: serde_json::Value, composer: crate::composer::composer::Composer, packages: Vec<serde_json::Val...
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `composer`
[INFO] [stdout]   --> src/composer/command/update_command.rs:20:156
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...put: serde_json::Value, composer: crate::composer::composer::Composer, packages: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_composer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packages`
[INFO] [stdout]   --> src/composer/command/update_command.rs:20:203
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...er::composer::Composer, packages: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `composer`
[INFO] [stdout]   --> src/composer/command/update_command.rs:24:37
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn createVersionSelector(&self, composer: crate::composer::composer::Composer) -> crate::composer::package::version::version_sel...
[INFO] [stdout]    |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_composer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/command/validate_command.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/command/validate_command.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) fn execute(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/composer/command/validate_command.rs:20:28
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn outputResult(&self, io: Box<dyn crate::composer::i_o::i_o_interface::IOInterface>, name: String, errors: Vec<serde_json::Valu...
[INFO] [stdout]    |                            ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/command/validate_command.rs:20:91
[INFO] [stdout]    |
[INFO] [stdout] 20 | ..._o_interface::IOInterface>, name: String, errors: Vec<serde_json::Value>, warnings: Vec<serde_json::Value>, checkPublish: bool, p...
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `errors`
[INFO] [stdout]   --> src/composer/command/validate_command.rs:20:105
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...Interface>, name: String, errors: Vec<serde_json::Value>, warnings: Vec<serde_json::Value>, checkPublish: bool, publishErrors: Ve...
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_errors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `warnings`
[INFO] [stdout]   --> src/composer/command/validate_command.rs:20:137
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...Vec<serde_json::Value>, warnings: Vec<serde_json::Value>, checkPublish: bool, publishErrors: Vec<serde_json::Value>, checkLock: b...
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_warnings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `checkPublish`
[INFO] [stdout]   --> src/composer/command/validate_command.rs:20:171
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...serde_json::Value>, checkPublish: bool, publishErrors: Vec<serde_json::Value>, checkLock: bool, lockErrors: Vec<serde_json::Value...
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_checkPublish`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `publishErrors`
[INFO] [stdout]   --> src/composer/command/validate_command.rs:20:191
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...heckPublish: bool, publishErrors: Vec<serde_json::Value>, checkLock: bool, lockErrors: Vec<serde_json::Value>, printSchemaUrl: bo...
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_publishErrors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `checkLock`
[INFO] [stdout]   --> src/composer/command/validate_command.rs:20:230
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...ec<serde_json::Value>, checkLock: bool, lockErrors: Vec<serde_json::Value>, printSchemaUrl: bool) {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_checkLock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lockErrors`
[INFO] [stdout]   --> src/composer/command/validate_command.rs:20:247
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...ue>, checkLock: bool, lockErrors: Vec<serde_json::Value>, printSchemaUrl: bool) {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lockErrors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `printSchemaUrl`
[INFO] [stdout]   --> src/composer/command/validate_command.rs:20:283
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...rde_json::Value>, printSchemaUrl: bool) {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_printSchemaUrl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pharFile`
[INFO] [stdout]   --> src/composer/compiler.rs:12:27
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn compile(&self, pharFile: String) {
[INFO] [stdout]    |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pharFile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/composer/compiler.rs:16:35
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn getRelativeFilePath(&self, file: serde_json::Value) -> String {
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `phar`
[INFO] [stdout]   --> src/composer/compiler.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn addFile(&self, phar: serde_json::Value, file: serde_json::Value, strip: bool) {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_phar`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/composer/compiler.rs:20:48
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn addFile(&self, phar: serde_json::Value, file: serde_json::Value, strip: bool) {
[INFO] [stdout]    |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strip`
[INFO] [stdout]   --> src/composer/compiler.rs:20:73
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn addFile(&self, phar: serde_json::Value, file: serde_json::Value, strip: bool) {
[INFO] [stdout]    |                                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_strip`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `phar`
[INFO] [stdout]   --> src/composer/compiler.rs:24:30
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn addComposerBin(&self, phar: serde_json::Value) {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_phar`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]   --> src/composer/compiler.rs:28:31
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn stripWhitespace(&self, source: String) -> String {
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locker`
[INFO] [stdout]   --> src/composer/composer.rs:22:29
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn setLocker(&self, locker: crate::composer::package::locker::Locker) {
[INFO] [stdout]    |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_locker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manager`
[INFO] [stdout]   --> src/composer/composer.rs:30:38
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn setDownloadManager(&self, manager: crate::composer::downloader::download_manager::DownloadManager) {
[INFO] [stdout]    |                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manager`
[INFO] [stdout]   --> src/composer/composer.rs:38:37
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn setArchiveManager(&self, manager: crate::composer::package::archiver::archive_manager::ArchiveManager) {
[INFO] [stdout]    |                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manager`
[INFO] [stdout]   --> src/composer/composer.rs:46:36
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn setPluginManager(&self, manager: crate::composer::plugin::plugin_manager::PluginManager) {
[INFO] [stdout]    |                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `autoloadGenerator`
[INFO] [stdout]   --> src/composer/composer.rs:54:40
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn setAutoloadGenerator(&self, autoloadGenerator: crate::composer::autoload::autoload_generator::AutoloadGenerator) {
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_autoloadGenerator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:16:33
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn addRepository(&self, name: String, config: serde_json::Value, append: bool) {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:16:47
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn addRepository(&self, name: String, config: serde_json::Value, append: bool) {
[INFO] [stdout]    |                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `append`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:16:74
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn addRepository(&self, name: String, config: serde_json::Value, append: bool) {
[INFO] [stdout]    |                                                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_append`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn insertRepository(&self, name: String, config: serde_json::Value, referenceName: String, offset: i64) {
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:20:50
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn insertRepository(&self, name: String, config: serde_json::Value, referenceName: String, offset: i64) {
[INFO] [stdout]    |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `referenceName`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:20:77
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn insertRepository(&self, name: String, config: serde_json::Value, referenceName: String, offset: i64) {
[INFO] [stdout]    |                                                                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_referenceName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:20:100
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn insertRepository(&self, name: String, config: serde_json::Value, referenceName: String, offset: i64) {
[INFO] [stdout]    |                                                                                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:24:36
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn setRepositoryUrl(&self, name: String, url: String) {
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `url`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:24:50
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn setRepositoryUrl(&self, name: String, url: String) {
[INFO] [stdout]    |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:28:36
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn removeRepository(&self, name: String) {
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:32:36
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn addConfigSetting(&self, name: String, value: serde_json::Value) {
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:32:50
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn addConfigSetting(&self, name: String, value: serde_json::Value) {
[INFO] [stdout]    |                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:36:39
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn removeConfigSetting(&self, name: String) {
[INFO] [stdout]    |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:40:31
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn addProperty(&self, name: String, value: serde_json::Value) {
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:40:45
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn addProperty(&self, name: String, value: serde_json::Value) {
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:44:34
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn removeProperty(&self, name: String) {
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r#type`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn addLink(&self, r#type: String, name: String, value: String) {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:48:43
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn addLink(&self, r#type: String, name: String, value: String) {
[INFO] [stdout]    |                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:48:57
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn addLink(&self, r#type: String, name: String, value: String) {
[INFO] [stdout]    |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r#type`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:52:30
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn removeLink(&self, r#type: String, name: String) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:52:46
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn removeLink(&self, r#type: String, name: String) {
[INFO] [stdout]    |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `method`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:56:30
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn manipulateJson(&self, method: String, fallback: Box<dyn Fn()>, args: serde_json::Value) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_method`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fallback`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:56:46
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn manipulateJson(&self, method: String, fallback: Box<dyn Fn()>, args: serde_json::Value) {
[INFO] [stdout]    |                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fallback`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:56:71
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn manipulateJson(&self, method: String, fallback: Box<dyn Fn()>, args: serde_json::Value) {
[INFO] [stdout]    |                                                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `array`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:60:31
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn arrayUnshiftRef(&self, array: Vec<serde_json::Value>, value: serde_json::Value) -> i64 {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_array`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/composer/config/json_config_source.rs:60:62
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn arrayUnshiftRef(&self, array: Vec<serde_json::Value>, value: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `baseDir`
[INFO] [stdout]   --> src/composer/config/mod.rs:24:30
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn setBaseDir(&self, baseDir: Option<String>) {
[INFO] [stdout]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_baseDir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]   --> src/composer/config/mod.rs:28:35
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn setConfigSource(&self, source: Box<dyn crate::composer::config::config_source_interface::ConfigSourceInterface>) {
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]   --> src/composer/config/mod.rs:36:39
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn setAuthConfigSource(&self, source: Box<dyn crate::composer::config::config_source_interface::ConfigSourceInterface>) {
[INFO] [stdout]    |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]   --> src/composer/config/mod.rs:44:44
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn setLocalAuthConfigSource(&self, source: Box<dyn crate::composer::config::config_source_interface::ConfigSourceInterface>) {
[INFO] [stdout]    |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/composer/config/mod.rs:52:25
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn merge(&self, config: Vec<serde_json::Value>, source: String) {
[INFO] [stdout]    |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]   --> src/composer/config/mod.rs:52:57
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn merge(&self, config: Vec<serde_json::Value>, source: String) {
[INFO] [stdout]    |                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/composer/config/mod.rs:60:23
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub fn get(&self, key: String, flags: i64) {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `flags`
[INFO] [stdout]   --> src/composer/config/mod.rs:60:36
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub fn get(&self, key: String, flags: i64) {
[INFO] [stdout]    |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_flags`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `flags`
[INFO] [stdout]   --> src/composer/config/mod.rs:64:23
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn all(&self, flags: i64) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_flags`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/composer/config/mod.rs:68:36
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn getSourceOfValue(&self, key: String) -> String {
[INFO] [stdout]    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `configValue`
[INFO] [stdout]   --> src/composer/config/mod.rs:72:38
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn setSourceOfConfigValue(&self, configValue: serde_json::Value, path: String, source: String) {
[INFO] [stdout]    |                                      ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_configValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/composer/config/mod.rs:72:70
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn setSourceOfConfigValue(&self, configValue: serde_json::Value, path: String, source: String) {
[INFO] [stdout]    |                                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]   --> src/composer/config/mod.rs:72:84
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn setSourceOfConfigValue(&self, configValue: serde_json::Value, path: String, source: String) {
[INFO] [stdout]    |                                                                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/composer/config/mod.rs:80:23
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn has(&self, key: String) -> bool {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/composer/config/mod.rs:84:23
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn process(&self, value: serde_json::Value, flags: i64) {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `flags`
[INFO] [stdout]   --> src/composer/config/mod.rs:84:49
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn process(&self, value: serde_json::Value, flags: i64) {
[INFO] [stdout]    |                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_flags`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/composer/config/mod.rs:88:24
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn realpath(&self, path: String) -> String {
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var`
[INFO] [stdout]   --> src/composer/config/mod.rs:92:30
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn getComposerEnv(&self, var: String) {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_var`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/config/mod.rs:96:33
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn disableRepoByName(&self, name: String) {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `url`
[INFO] [stdout]    --> src/composer/config/mod.rs:100:39
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub fn prohibitUrlByConfig(&self, url: String, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, repoOptio...
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]    --> src/composer/config/mod.rs:100:52
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub fn prohibitUrlByConfig(&self, url: String, io: Option<Box<dyn crate::composer::i_o::i_o_interface::IOInterface>>, repoOptio...
[INFO] [stdout]     |                                                    ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repoOptions`
[INFO] [stdout]    --> src/composer/config/mod.rs:100:123
[INFO] [stdout]     |
[INFO] [stdout] 100 | ...face::IOInterface>>, repoOptions: Vec<serde_json::Value>) {
[INFO] [stdout]     |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repoOptions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/console/application.rs:16:23
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn run(&self, input: Option<serde_json::Value>, output: Option<serde_json::Value>) -> i64 {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/console/application.rs:16:57
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn run(&self, input: Option<serde_json::Value>, output: Option<serde_json::Value>) -> i64 {
[INFO] [stdout]    |                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/console/application.rs:20:25
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn doRun(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/console/application.rs:20:51
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn doRun(&self, input: serde_json::Value, output: serde_json::Value) -> i64 {
[INFO] [stdout]    |                                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/console/application.rs:24:32
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn getNewWorkingDir(&self, input: serde_json::Value) -> Option<String> {
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exception`
[INFO] [stdout]   --> src/composer/console/application.rs:28:32
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn hintCommonErrors(&self, exception: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exception`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/composer/console/application.rs:28:62
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn hintCommonErrors(&self, exception: serde_json::Value, output: serde_json::Value) {
[INFO] [stdout]    |                                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `required`
[INFO] [stdout]   --> src/composer/console/application.rs:32:31
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn getComposer(&self, required: bool, disablePlugins: Option<bool>, disableScripts: Option<bool>) -> Option<crate::composer:...
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_required`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `disablePlugins`
[INFO] [stdout]   --> src/composer/console/application.rs:32:47
[INFO] [stdout]    |
[INFO] [stdout] 32 | ..., required: bool, disablePlugins: Option<bool>, disableScripts: Option<bool>) -> Option<crate::composer::composer::Composer> {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_disablePlugins`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `disableScripts`
[INFO] [stdout]   --> src/composer/console/application.rs:32:77
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...ns: Option<bool>, disableScripts: Option<bool>) -> Option<crate::composer::composer::Composer> {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_disableScripts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/console/application.rs:52:43
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn getCommandNameBeforeBinding(&self, input: serde_json::Value) -> Option<String> {
[INFO] [stdout]    |                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/composer/console/github_action_error.rs:12:24
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn emit(&self, message: String, file: Option<String>, line: Option<i64>) {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/composer/console/github_action_error.rs:12:41
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn emit(&self, message: String, file: Option<String>, line: Option<i64>) {
[INFO] [stdout]    |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]   --> src/composer/console/github_action_error.rs:12:63
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn emit(&self, message: String, file: Option<String>, line: Option<i64>) {
[INFO] [stdout]    |                                                               ^^^^ help: if this is intentional, prefix it with an underscore: `_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/composer/console/github_action_error.rs:16:26
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn escapeData(&self, data: String) -> String {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]   --> src/composer/console/github_action_error.rs:20:30
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn escapeProperty(&self, property: String) -> String {
[INFO] [stdout]    |                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/composer/console/html_output_formatter.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn format(&self, message: Option<String>) -> Option<String> {
[INFO] [stdout]    |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matches`
[INFO] [stdout]   --> src/composer/console/html_output_formatter.rs:16:26
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn formatHtml(&self, matches: Vec<serde_json::Value>) -> String {
[INFO] [stdout]    |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/console/input/input_argument.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn complete(&self, input: serde_json::Value, suggestions: serde_json::Value) {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suggestions`
[INFO] [stdout]   --> src/composer/console/input/input_argument.rs:12:54
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn complete(&self, input: serde_json::Value, suggestions: serde_json::Value) {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_suggestions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/composer/console/input/input_option.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn complete(&self, input: serde_json::Value, suggestions: serde_json::Value) {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suggestions`
[INFO] [stdout]   --> src/composer/console/input/input_option.rs:12:54
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn complete(&self, input: serde_json::Value, suggestions: serde_json::Value) {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_suggestions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literal`
[INFO] [stdout]   --> src/composer/dependency_resolver/decisions.rs:15:26
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn decide(&self, literal: i64, level: i64, why: crate::composer::dependency_resolver::rule::Rule) {
[INFO] [stdout]    |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `level`
[INFO] [stdout]   --> src/composer/dependency_resolver/decisions.rs:15:40
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn decide(&self, literal: i64, level: i64, why: crate::composer::dependency_resolver::rule::Rule) {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `why`
[INFO] [stdout]   --> src/composer/dependency_resolver/decisions.rs:15:52
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn decide(&self, literal: i64, level: i64, why: crate::composer::dependency_resolver::rule::Rule) {
[INFO] [stdout]    |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_why`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literal`
[INFO] [stdout]   --> src/composer/dependency_resolver/decisions.rs:19:27
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn satisfy(&self, literal: i64) -> bool {
[INFO] [stdout]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literal`
[INFO] [stdout]   --> src/composer/dependency_resolver/decisions.rs:23:28
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn conflict(&self, literal: i64) -> bool {
[INFO] [stdout]    |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literalOrPackageId`
[INFO] [stdout]   --> src/composer/dependency_resolver/decisions.rs:27:27
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn decided(&self, literalOrPackageId: i64) -> bool {
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literalOrPackageId`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literalOrPackageId`
[INFO] [stdout]   --> src/composer/dependency_resolver/decisions.rs:31:29
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn undecided(&self, literalOrPackageId: i64) -> bool {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literalOrPackageId`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literalOrPackageId`
[INFO] [stdout]   --> src/composer/dependency_resolver/decisions.rs:35:34
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn decidedInstall(&self, literalOrPackageId: i64) -> bool {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literalOrPackageId`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literalOrPackageId`
[INFO] [stdout]   --> src/composer/dependency_resolver/decisions.rs:39:33
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn decisionLevel(&self, literalOrPackageId: i64) -> i64 {
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literalOrPackageId`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literalOrPackageId`
[INFO] [stdout]   --> src/composer/dependency_resolver/decisions.rs:43:32
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn decisionRule(&self, literalOrPackageId: i64) -> crate::composer::dependency_resolver::rule::Rule {
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literalOrPackageId`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `queueOffset`
[INFO] [stdout]   --> src/composer/dependency_resolver/decisions.rs:47:28
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn atOffset(&self, queueOffset: i64) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_queueOffset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `queueOffset`
[INFO] [stdout]   --> src/composer/dependency_resolver/decisions.rs:51:31
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn validOffset(&self, queueOffset: i64) -> bool {
[INFO] [stdout]    |                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_queueOffset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]   --> src/composer/dependency_resolver/decisions.rs:67:33
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub fn resetToOffset(&self, offset: i64) {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literal`
[INFO] [stdout]    --> src/composer/dependency_resolver/decisions.rs:103:38
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub(crate) fn addDecision(&self, literal: i64, level: i64) {
[INFO] [stdout]     |                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `level`
[INFO] [stdout]    --> src/composer/dependency_resolver/decisions.rs:103:52
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub(crate) fn addDecision(&self, literal: i64, level: i64) {
[INFO] [stdout]     |                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]    --> src/composer/dependency_resolver/decisions.rs:107:28
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn toString(&self, pool: Option<crate::composer::dependency_resolver::pool::Pool>) -> String {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:12:34
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn versionCompare(&self, a: Box<dyn crate::composer::package::package_interface::PackageInterface>, b: Box<dyn crate::compos...
[INFO] [stdout]    |                                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:12:109
[INFO] [stdout]    |
[INFO] [stdout] 12 | ..._interface::PackageInterface>, b: Box<dyn crate::composer::package::package_interface::PackageInterface>, operator: String) -> bo...
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operator`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:12:184
[INFO] [stdout]    |
[INFO] [stdout] 12 | ...ace::PackageInterface>, operator: String) -> bool {
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:16:43
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn selectPreferredPackages(&self, pool: crate::composer::dependency_resolver::pool::Pool, literals: Vec<serde_json::Value>, ...
[INFO] [stdout]    |                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literals`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:16:99
[INFO] [stdout]    |
[INFO] [stdout] 16 | ...y_resolver::pool::Pool, literals: Vec<serde_json::Value>, requiredPackage: Option<String>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requiredPackage`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:16:133
[INFO] [stdout]    |
[INFO] [stdout] 16 | ...de_json::Value>, requiredPackage: Option<String>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requiredPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:20:46
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub(crate) fn groupLiteralsByName(&self, pool: crate::composer::dependency_resolver::pool::Pool, literals: Vec<serde_json::Value...
[INFO] [stdout]    |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literals`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:20:102
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...y_resolver::pool::Pool, literals: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:24:37
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn compareByPriority(&self, pool: crate::composer::dependency_resolver::pool::Pool, a: crate::composer::package::base_packag...
[INFO] [stdout]    |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:24:93
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...pendency_resolver::pool::Pool, a: crate::composer::package::base_package::BasePackage, b: crate::composer::package::base_package:...
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:24:149
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...ge::base_package::BasePackage, b: crate::composer::package::base_package::BasePackage, requiredPackage: Option<String>, ignoreRep...
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requiredPackage`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:24:205
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...ge::BasePackage, requiredPackage: Option<String>, ignoreReplace: bool) -> i64 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requiredPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignoreReplace`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:24:238
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...e: Option<String>, ignoreReplace: bool) -> i64 {
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignoreReplace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:28:35
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub(crate) fn replaces(&self, source: crate::composer::package::base_package::BasePackage, target: crate::composer::package::bas...
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:28:96
[INFO] [stdout]    |
[INFO] [stdout] 28 | ...ase_package::BasePackage, target: crate::composer::package::base_package::BasePackage) -> bool {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:32:45
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub(crate) fn pruneToBestVersion(&self, pool: crate::composer::dependency_resolver::pool::Pool, literals: Vec<serde_json::Value>...
[INFO] [stdout]    |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literals`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:32:101
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...y_resolver::pool::Pool, literals: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:36:45
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub(crate) fn pruneRemoteAliases(&self, pool: crate::composer::dependency_resolver::pool::Pool, literals: Vec<serde_json::Value>...
[INFO] [stdout]    |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literals`
[INFO] [stdout]   --> src/composer/dependency_resolver/default_policy.rs:36:101
[INFO] [stdout]    |
[INFO] [stdout] 36 | ...y_resolver::pool::Pool, literals: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule`
[INFO] [stdout]   --> src/composer/dependency_resolver/generic_rule.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn equals(&self, rule: crate::composer::dependency_resolver::rule::Rule) -> bool {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_rule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/lock_transaction.rs:12:37
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn setResultPackages(&self, pool: crate::composer::dependency_resolver::pool::Pool, decisions: crate::composer::dependency_r...
[INFO] [stdout]    |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `decisions`
[INFO] [stdout]   --> src/composer/dependency_resolver/lock_transaction.rs:12:93
[INFO] [stdout]    |
[INFO] [stdout] 12 | ..._resolver::pool::Pool, decisions: crate::composer::dependency_resolver::decisions::Decisions) {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_decisions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `extractionResult`
[INFO] [stdout]   --> src/composer/dependency_resolver/lock_transaction.rs:16:37
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn setNonDevPackages(&self, extractionResult: crate::composer::dependency_resolver::lock_transaction::LockTransaction) {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_extractionResult`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `devMode`
[INFO] [stdout]   --> src/composer/dependency_resolver/lock_transaction.rs:20:38
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn getNewLockPackages(&self, devMode: bool, updateMirrors: bool) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_devMode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `updateMirrors`
[INFO] [stdout]   --> src/composer/dependency_resolver/lock_transaction.rs:20:53
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn getNewLockPackages(&self, devMode: bool, updateMirrors: bool) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_updateMirrors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/dependency_resolver/lock_transaction.rs:24:35
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn updateMirrorAndUrls(&self, package: crate::composer::package::base_package::BasePackage) -> crate::composer::package::base_pa...
[INFO] [stdout]    |                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `aliases`
[INFO] [stdout]   --> src/composer/dependency_resolver/lock_transaction.rs:28:30
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn getAliases(&self, aliases: Vec<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_aliases`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule`
[INFO] [stdout]   --> src/composer/dependency_resolver/multi_conflict_rule.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn equals(&self, rule: crate::composer::dependency_resolver::rule::Rule) -> bool {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_rule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lock`
[INFO] [stdout]   --> src/composer/dependency_resolver/operation/install_operation.rs:18:24
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn show(&self, lock: serde_json::Value) -> String {
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_lock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/dependency_resolver/operation/install_operation.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn format(package: Box<dyn crate::composer::package::package_interface::PackageInterface>, lock: bool) -> String {
[INFO] [stdout]    |                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lock`
[INFO] [stdout]   --> src/composer/dependency_resolver/operation/install_operation.rs:22:100
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn format(package: Box<dyn crate::composer::package::package_interface::PackageInterface>, lock: bool) -> String {
[INFO] [stdout]    |                                                                                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_lock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lock`
[INFO] [stdout]   --> src/composer/dependency_resolver/operation/mark_alias_installed_operation.rs:18:24
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn show(&self, lock: serde_json::Value) -> String {
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_lock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lock`
[INFO] [stdout]   --> src/composer/dependency_resolver/operation/mark_alias_uninstalled_operation.rs:18:24
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn show(&self, lock: serde_json::Value) -> String {
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_lock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lock`
[INFO] [stdout]   --> src/composer/dependency_resolver/operation/uninstall_operation.rs:18:24
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn show(&self, lock: serde_json::Value) -> String {
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_lock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/dependency_resolver/operation/uninstall_operation.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn format(package: Box<dyn crate::composer::package::package_interface::PackageInterface>, lock: bool) -> String {
[INFO] [stdout]    |                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lock`
[INFO] [stdout]   --> src/composer/dependency_resolver/operation/uninstall_operation.rs:22:100
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn format(package: Box<dyn crate::composer::package::package_interface::PackageInterface>, lock: bool) -> String {
[INFO] [stdout]    |                                                                                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_lock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lock`
[INFO] [stdout]   --> src/composer/dependency_resolver/operation/update_operation.rs:22:24
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn show(&self, lock: serde_json::Value) -> String {
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_lock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initialPackage`
[INFO] [stdout]   --> src/composer/dependency_resolver/operation/update_operation.rs:26:19
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn format(initialPackage: Box<dyn crate::composer::package::package_interface::PackageInterface>, targetPackage: Box<dyn cra...
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initialPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targetPackage`
[INFO] [stdout]   --> src/composer/dependency_resolver/operation/update_operation.rs:26:107
[INFO] [stdout]    |
[INFO] [stdout] 26 | ...PackageInterface>, targetPackage: Box<dyn crate::composer::package::package_interface::PackageInterface>, lock: bool) -> String {
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_targetPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lock`
[INFO] [stdout]   --> src/composer/dependency_resolver/operation/update_operation.rs:26:194
[INFO] [stdout]    |
[INFO] [stdout] 26 | ...terface::PackageInterface>, lock: bool) -> String {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_lock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:12:38
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn getRemovedVersions(&self, name: String, constraint: serde_json::Value) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:12:52
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn getRemovedVersions(&self, name: String, constraint: serde_json::Value) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `objectHash`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:20:47
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn getRemovedVersionsByPackage(&self, objectHash: String) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_objectHash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageName`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:28:51
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn isSecurityRemovedPackageVersion(&self, packageName: String, constraint: Option<serde_json::Value>) -> bool {
[INFO] [stdout]    |                                                   ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:28:72
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn isSecurityRemovedPackageVersion(&self, packageName: String, constraint: Option<serde_json::Value>) -> bool {
[INFO] [stdout]    |                                                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageName`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:32:67
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...ackageVersion(&self, packageName: String, constraint: Option<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:32:88
[INFO] [stdout]    |
[INFO] [stdout] 32 | ... packageName: String, constraint: Option<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageName`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:36:52
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn isAbandonedRemovedPackageVersion(&self, packageName: String, constraint: Option<serde_json::Value>) -> bool {
[INFO] [stdout]    |                                                    ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:36:73
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn isAbandonedRemovedPackageVersion(&self, packageName: String, constraint: Option<serde_json::Value>) -> bool {
[INFO] [stdout]    |                                                                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packages`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn setPackages(&self, packages: Vec<serde_json::Value>) {
[INFO] [stdout]    |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:56:31
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn packageById(&self, id: i64) -> crate::composer::package::base_package::BasePackage {
[INFO] [stdout]    |                               ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:64:32
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn whatProvides(&self, name: String, constraint: Option<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:64:46
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn whatProvides(&self, name: String, constraint: Option<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:68:35
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn computeWhatProvides(&self, name: String, constraint: Option<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:68:49
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn computeWhatProvides(&self, name: String, constraint: Option<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literal`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:72:36
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub fn literalToPackage(&self, literal: i64) -> crate::composer::package::base_package::BasePackage {
[INFO] [stdout]    |                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literal`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:76:41
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn literalToPrettyString(&self, literal: i64, installedMap: Vec<serde_json::Value>) -> String {
[INFO] [stdout]    |                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `installedMap`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:76:55
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn literalToPrettyString(&self, literal: i64, installedMap: Vec<serde_json::Value>) -> String {
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_installedMap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `candidate`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:80:27
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn r#match(&self, candidate: crate::composer::package::base_package::BasePackage, name: String, constraint: Option<serde_jso...
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_candidate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:80:91
[INFO] [stdout]    |
[INFO] [stdout] 80 | ...:base_package::BasePackage, name: String, constraint: Option<serde_json::Value>) -> bool {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:80:105
[INFO] [stdout]    |
[INFO] [stdout] 80 | ...ackage, name: String, constraint: Option<serde_json::Value>) -> bool {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool.rs:84:54
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn isUnacceptableFixedOrLockedPackage(&self, package: crate::composer::package::base_package::BasePackage) -> bool {
[INFO] [stdout]    |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `types`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:14:35
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn setIgnoredTypes(&self, types: Vec<serde_json::Value>) {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `types`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:18:35
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn setAllowedTypes(&self, types: Option<Vec<serde_json::Value>>) {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repositories`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:22:29
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn buildPool(&self, repositories: Vec<serde_json::Value>, request: crate::composer::dependency_resolver::request::Request) -...
[INFO] [stdout]    |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repositories`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:22:67
[INFO] [stdout]    |
[INFO] [stdout] 22 | ... Vec<serde_json::Value>, request: crate::composer::dependency_resolver::request::Request) -> crate::composer::dependency_resolver...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:26:41
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn markPackageNameForLoading(&self, request: crate::composer::dependency_resolver::request::Request, name: String, constraint: s...
[INFO] [stdout]    |                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:26:106
[INFO] [stdout]    |
[INFO] [stdout] 26 | ...resolver::request::Request, name: String, constraint: serde_json::Value) {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:26:120
[INFO] [stdout]    |
[INFO] [stdout] 26 | ...equest, name: String, constraint: serde_json::Value) {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:30:44
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn loadPackagesMarkedForLoading(&self, request: crate::composer::dependency_resolver::request::Request, repositories: Vec<serde_...
[INFO] [stdout]    |                                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repositories`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:30:109
[INFO] [stdout]    |
[INFO] [stdout] 30 | ...::request::Request, repositories: Vec<serde_json::Value>) {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repositories`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:34:27
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn loadPackage(&self, request: crate::composer::dependency_resolver::request::Request, repositories: Vec<serde_json::Value>, pac...
[INFO] [stdout]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repositories`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:34:92
[INFO] [stdout]    |
[INFO] [stdout] 34 | ...::request::Request, repositories: Vec<serde_json::Value>, package: crate::composer::package::base_package::BasePackage, propagate...
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repositories`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:34:130
[INFO] [stdout]    |
[INFO] [stdout] 34 | ... Vec<serde_json::Value>, package: crate::composer::package::base_package::BasePackage, propagateUpdate: bool) {
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `propagateUpdate`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:34:192
[INFO] [stdout]    |
[INFO] [stdout] 34 | ...ge::BasePackage, propagateUpdate: bool) {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_propagateUpdate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:38:29
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn isRootRequire(&self, request: crate::composer::dependency_resolver::request::Request, name: String) -> bool {
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:38:94
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn isRootRequire(&self, request: crate::composer::dependency_resolver::request::Request, name: String) -> bool {
[INFO] [stdout]    |                                                                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:42:38
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn getSkippedRootRequires(&self, request: crate::composer::dependency_resolver::request::Request, name: String) -> Vec<serde_jso...
[INFO] [stdout]    |                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:42:103
[INFO] [stdout]    |
[INFO] [stdout] 42 | ...resolver::request::Request, name: String) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:46:31
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn isUpdateAllowed(&self, package: crate::composer::package::base_package::BasePackage) -> bool {
[INFO] [stdout]    |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:50:51
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn warnAboutNonMatchingUpdateAllowList(&self, request: crate::composer::dependency_resolver::request::Request) {
[INFO] [stdout]    |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:54:29
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn unlockPackage(&self, request: crate::composer::dependency_resolver::request::Request, repositories: Vec<serde_json::Value>, n...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repositories`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:54:94
[INFO] [stdout]    |
[INFO] [stdout] 54 | ...::request::Request, repositories: Vec<serde_json::Value>, name: String) {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repositories`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:54:132
[INFO] [stdout]    |
[INFO] [stdout] 54 | ...es: Vec<serde_json::Value>, name: String) {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:58:51
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn markPackageNameForLoadingIfRequired(&self, request: crate::composer::dependency_resolver::request::Request, name: String) {
[INFO] [stdout]    |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:58:116
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn markPackageNameForLoadingIfRequired(&self, request: crate::composer::dependency_resolver::request::Request, name: String) {
[INFO] [stdout]    |                                                                                                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:62:35
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn removeLoadedPackage(&self, request: crate::composer::dependency_resolver::request::Request, repositories: Vec<serde_json::Val...
[INFO] [stdout]    |                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repositories`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:62:100
[INFO] [stdout]    |
[INFO] [stdout] 62 | ...::request::Request, repositories: Vec<serde_json::Value>, package: crate::composer::package::base_package::BasePackage, index: i6...
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repositories`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:62:138
[INFO] [stdout]    |
[INFO] [stdout] 62 | ... Vec<serde_json::Value>, package: crate::composer::package::base_package::BasePackage, index: i64) {
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:62:200
[INFO] [stdout]    |
[INFO] [stdout] 62 | ...base_package::BasePackage, index: i64) {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:66:28
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn runOptimizer(&self, request: crate::composer::dependency_resolver::request::Request, pool: crate::composer::dependency_resolv...
[INFO] [stdout]    |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:66:93
[INFO] [stdout]    |
[INFO] [stdout] 66 | ...resolver::request::Request, pool: crate::composer::dependency_resolver::pool::Pool) -> crate::composer::dependency_resolver::pool...
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:70:41
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn runSecurityAdvisoryFilter(&self, pool: crate::composer::dependency_resolver::pool::Pool, repositories: Vec<serde_json::Value>...
[INFO] [stdout]    |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repositories`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:70:97
[INFO] [stdout]    |
[INFO] [stdout] 70 | ...solver::pool::Pool, repositories: Vec<serde_json::Value>, request: crate::composer::dependency_resolver::request::Request) -> cra...
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repositories`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_builder.rs:70:135
[INFO] [stdout]    |
[INFO] [stdout] 70 | ... Vec<serde_json::Value>, request: crate::composer::dependency_resolver::request::Request) -> crate::composer::dependency_resolver...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn optimize(&self, request: crate::composer::dependency_resolver::request::Request, pool: crate::composer::dependency_resolv...
[INFO] [stdout]    |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:12:93
[INFO] [stdout]    |
[INFO] [stdout] 12 | ...resolver::request::Request, pool: crate::composer::dependency_resolver::pool::Pool) -> crate::composer::dependency_resolver::pool...
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:16:23
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn prepare(&self, request: crate::composer::dependency_resolver::request::Request, pool: crate::composer::dependency_resolver::p...
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:16:88
[INFO] [stdout]    |
[INFO] [stdout] 16 | ...resolver::request::Request, pool: crate::composer::dependency_resolver::pool::Pool) {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:20:38
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn markPackageIrremovable(&self, package: crate::composer::package::base_package::BasePackage) {
[INFO] [stdout]    |                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:24:35
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn applyRemovalsToPool(&self, pool: crate::composer::dependency_resolver::pool::Pool) -> crate::composer::dependency_resolver::p...
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:28:47
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn optimizeByIdenticalDependencies(&self, request: crate::composer::dependency_resolver::request::Request, pool: crate::composer...
[INFO] [stdout]    |                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:28:112
[INFO] [stdout]    |
[INFO] [stdout] 28 | ...resolver::request::Request, pool: crate::composer::dependency_resolver::pool::Pool) {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:32:39
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn calculateDependencyHash(&self, package: crate::composer::package::base_package::BasePackage) -> String {
[INFO] [stdout]    |                                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:36:37
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn markPackageForRemoval(&self, id: i64) {
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn keepPackage(&self, package: crate::composer::package::base_package::BasePackage, identicalDefinitionsPerPackage: Vec<serde_js...
[INFO] [stdout]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identicalDefinitionsPerPackage`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:40:89
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...r::package::base_package::BasePackage, identicalDefinitionsPerPackage: Vec<serde_json::Value>, packageIdenticalDefinitionLookup: ...
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identicalDefinitionsPerPackage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageIdenticalDefinitionLookup`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:40:145
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...onsPerPackage: Vec<serde_json::Value>, packageIdenticalDefinitionLookup: Vec<serde_json::Value>) {
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageIdenticalDefinitionLookup`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:44:46
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn optimizeImpossiblePackagesAway(&self, request: crate::composer::dependency_resolver::request::Request, pool: crate::composer:...
[INFO] [stdout]    |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:44:111
[INFO] [stdout]    |
[INFO] [stdout] 44 | ...resolver::request::Request, pool: crate::composer::dependency_resolver::pool::Pool) {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:48:51
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn extractRequireConstraintsPerPackage(&self, package: String, constraint: serde_json::Value) {
[INFO] [stdout]    |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:48:68
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn extractRequireConstraintsPerPackage(&self, package: String, constraint: serde_json::Value) {
[INFO] [stdout]    |                                                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `package`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:52:52
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn extractConflictConstraintsPerPackage(&self, package: String, constraint: serde_json::Value) {
[INFO] [stdout]    |                                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:52:69
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn extractConflictConstraintsPerPackage(&self, package: String, constraint: serde_json::Value) {
[INFO] [stdout]    |                                                                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint`
[INFO] [stdout]   --> src/composer/dependency_resolver/pool_optimizer.rs:56:49
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn expandDisjunctiveMultiConstraints(&self, constraint: serde_json::Value) {
[INFO] [stdout]    |                                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:12:27
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn addRule(&self, rule: crate::composer::dependency_resolver::rule::Rule) {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_rule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repositorySet`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:20:35
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn getPrettyString(&self, repositorySet: crate::composer::repository::repository_set::RepositorySet, request: crate::compose...
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repositorySet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:20:110
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...tory_set::RepositorySet, request: crate::composer::dependency_resolver::request::Request, pool: crate::composer::dependency_resol...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:20:175
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...resolver::request::Request, pool: crate::composer::dependency_resolver::pool::Pool, isVerbose: bool, installedMap: Vec<serde_json...
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `isVerbose`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:20:231
[INFO] [stdout]    |
[INFO] [stdout] 20 | ..._resolver::pool::Pool, isVerbose: bool, installedMap: Vec<serde_json::Value>, learnedPool: Vec<serde_json::Value>) -> String {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_isVerbose`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `installedMap`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:20:248
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...l, isVerbose: bool, installedMap: Vec<serde_json::Value>, learnedPool: Vec<serde_json::Value>) -> String {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_installedMap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `learnedPool`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:20:286
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...<serde_json::Value>, learnedPool: Vec<serde_json::Value>) -> String {
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_learnedPool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:24:33
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn getSortableString(&self, pool: crate::composer::dependency_resolver::pool::Pool, rule: crate::composer::dependency_resolver::...
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:24:89
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...dency_resolver::pool::Pool, rule: crate::composer::dependency_resolver::rule::Rule) -> String {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_rule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:28:31
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn getRulePriority(&self, rule: crate::composer::dependency_resolver::rule::Rule) -> i64 {
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_rule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rules`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:32:36
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn formatDeduplicatedRules(rules: Vec<serde_json::Value>, indent: String, repositorySet: crate::composer::repository::reposi...
[INFO] [stdout]    |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_rules`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `indent`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:32:67
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...: Vec<serde_json::Value>, indent: String, repositorySet: crate::composer::repository::repository_set::RepositorySet, request: cra...
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_indent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repositorySet`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:32:83
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...>, indent: String, repositorySet: crate::composer::repository::repository_set::RepositorySet, request: crate::composer::dependenc...
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repositorySet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:32:158
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...tory_set::RepositorySet, request: crate::composer::dependency_resolver::request::Request, pool: crate::composer::dependency_resol...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:32:223
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...resolver::request::Request, pool: crate::composer::dependency_resolver::pool::Pool, isVerbose: bool, installedMap: Vec<serde_json...
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `isVerbose`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:32:279
[INFO] [stdout]    |
[INFO] [stdout] 32 | ..._resolver::pool::Pool, isVerbose: bool, installedMap: Vec<serde_json::Value>, learnedPool: Vec<serde_json::Value>) -> String {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_isVerbose`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `installedMap`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:32:296
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...l, isVerbose: bool, installedMap: Vec<serde_json::Value>, learnedPool: Vec<serde_json::Value>) -> String {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_installedMap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `learnedPool`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:32:334
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...<serde_json::Value>, learnedPool: Vec<serde_json::Value>) -> String {
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_learnedPool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repositorySet`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:36:34
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn isCausedByLock(&self, repositorySet: crate::composer::repository::repository_set::RepositorySet, request: crate::composer...
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repositorySet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:36:109
[INFO] [stdout]    |
[INFO] [stdout] 36 | ...tory_set::RepositorySet, request: crate::composer::dependency_resolver::request::Request, pool: crate::composer::dependency_resol...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:36:174
[INFO] [stdout]    |
[INFO] [stdout] 36 | ...resolver::request::Request, pool: crate::composer::dependency_resolver::pool::Pool) -> bool {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:40:36
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub(crate) fn addReason(&self, id: String, reason: crate::composer::dependency_resolver::rule::Rule) {
[INFO] [stdout]    |                                    ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reason`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:40:48
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub(crate) fn addReason(&self, id: String, reason: crate::composer::dependency_resolver::rule::Rule) {
[INFO] [stdout]    |                                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reason`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repositorySet`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:48:36
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn getMissingPackageReason(repositorySet: crate::composer::repository::repository_set::RepositorySet, request: crate::compos...
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repositorySet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:48:111
[INFO] [stdout]    |
[INFO] [stdout] 48 | ...tory_set::RepositorySet, request: crate::composer::dependency_resolver::request::Request, pool: crate::composer::dependency_resol...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:48:176
[INFO] [stdout]    |
[INFO] [stdout] 48 | ...resolver::request::Request, pool: crate::composer::dependency_resolver::pool::Pool, isVerbose: bool, packageName: String, constra...
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `isVerbose`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:48:232
[INFO] [stdout]    |
[INFO] [stdout] 48 | ..._resolver::pool::Pool, isVerbose: bool, packageName: String, constraint: Option<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_isVerbose`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageName`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:48:249
[INFO] [stdout]    |
[INFO] [stdout] 48 | ...ol, isVerbose: bool, packageName: String, constraint: Option<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:48:270
[INFO] [stdout]    |
[INFO] [stdout] 48 | ... packageName: String, constraint: Option<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packages`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:52:27
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn getPackageList(packages: Vec<serde_json::Value>, isVerbose: bool, pool: Option<crate::composer::dependency_resolver::pool...
[INFO] [stdout]    |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `isVerbose`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:52:61
[INFO] [stdout]    |
[INFO] [stdout] 52 | ...ec<serde_json::Value>, isVerbose: bool, pool: Option<crate::composer::dependency_resolver::pool::Pool>, constraint: Option<serde_...
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_isVerbose`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:52:78
[INFO] [stdout]    |
[INFO] [stdout] 52 | ...n::Value>, isVerbose: bool, pool: Option<crate::composer::dependency_resolver::pool::Pool>, constraint: Option<serde_json::Value>...
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:52:142
[INFO] [stdout]    |
[INFO] [stdout] 52 | ...esolver::pool::Pool>, constraint: Option<serde_json::Value>, useRemovedVersionGroup: bool) -> String {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `useRemovedVersionGroup`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:52:181
[INFO] [stdout]    |
[INFO] [stdout] 52 | ...::Value>, useRemovedVersionGroup: bool) -> String {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_useRemovedVersionGroup`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:56:34
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn getPlatformPackageVersion(pool: crate::composer::dependency_resolver::pool::Pool, packageName: String, version: String) -> Op...
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageName`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:56:90
[INFO] [stdout]    |
[INFO] [stdout] 56 | ...esolver::pool::Pool, packageName: String, version: String) -> Option<String> {
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:56:111
[INFO] [stdout]    |
[INFO] [stdout] 56 | ...ol, packageName: String, version: String) -> Option<String> {
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `versions`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:60:28
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn condenseVersionList(versions: Vec<serde_json::Value>, max: i64, maxDev: i64) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_versions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:60:62
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn condenseVersionList(versions: Vec<serde_json::Value>, max: i64, maxDev: i64) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                                              ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maxDev`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:60:72
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn condenseVersionList(versions: Vec<serde_json::Value>, max: i64, maxDev: i64) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                                                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_maxDev`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packages`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:64:25
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn hasMultipleNames(packages: Vec<serde_json::Value>) -> bool {
[INFO] [stdout]    |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn computeCheckForLowerPrioRepo(pool: crate::composer::dependency_resolver::pool::Pool, isVerbose: bool, packageName: String, hi...
[INFO] [stdout]    |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `isVerbose`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:68:93
[INFO] [stdout]    |
[INFO] [stdout] 68 | ..._resolver::pool::Pool, isVerbose: bool, packageName: String, higherRepoPackages: Vec<serde_json::Value>, allReposPackages: Vec<se...
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_isVerbose`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageName`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:68:110
[INFO] [stdout]    |
[INFO] [stdout] 68 | ...ol, isVerbose: bool, packageName: String, higherRepoPackages: Vec<serde_json::Value>, allReposPackages: Vec<serde_json::Value>, r...
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packageName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `higherRepoPackages`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:68:131
[INFO] [stdout]    |
[INFO] [stdout] 68 | ...Name: String, higherRepoPackages: Vec<serde_json::Value>, allReposPackages: Vec<serde_json::Value>, reason: String, constraint: O...
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_higherRepoPackages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `allReposPackages`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:68:175
[INFO] [stdout]    |
[INFO] [stdout] 68 | ...e_json::Value>, allReposPackages: Vec<serde_json::Value>, reason: String, constraint: Option<serde_json::Value>) -> Vec<serde_jso...
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allReposPackages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reason`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:68:217
[INFO] [stdout]    |
[INFO] [stdout] 68 | ...: Vec<serde_json::Value>, reason: String, constraint: Option<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reason`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:68:233
[INFO] [stdout]    |
[INFO] [stdout] 68 | ...lue>, reason: String, constraint: Option<serde_json::Value>) -> Vec<serde_json::Value> {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:72:36
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub(crate) fn constraintToText(constraint: Option<serde_json::Value>) -> String {
[INFO] [stdout]    |                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repositorySet`
[INFO] [stdout]   --> src/composer/dependency_resolver/problem.rs:76:25
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn getProvidersList(repositorySet: crate::composer::repository::repository_set::RepositorySet, packageName: String, maxProviders...
[INFO] [stdout]    |                         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repositorySet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packageName`
[WARN] too many lines in the log, truncating it
